missing yearmon labels using ggplot scale_x_yearmon

后端 未结 2 729
既然无缘
既然无缘 2021-01-16 07:51

I have grouped some data by month and year, converted to yearmon using zoo and am now plotting it in ggplot. Does anyone know why one of the ticklabels are missing and there

相关标签:
2条回答
  • 2021-01-16 08:06

    I think scale_x_yearmon was meant for xy plots as it calls scale_x_continuous but we can just call scale_x_continuous ourselves like this (only the line marked ## is changed):

    ggplot(df, aes(x = dates, y = values)) + 
     geom_bar(position="dodge", stat="identity") +      
     theme_light() +
     xlab('Month') +
     ylab('values')+ 
     scale_x_continuous(breaks=as.numeric(df$dates), labels=format(df$dates,"%Y %m")) ##
    

    0 讨论(0)
  • 2021-01-16 08:19

    I think it's an issue with plotting zoo objects. Use the standard Date class and specify the date label in ggplot. You'll need to add the day into the character string for your dates column. Then you can use scale_x_date and specify the date_labels.

    library(tidyverse)
    df <-  data.frame(dates = c("2019-01", "2019-02", "2018-08", "2018-09", "2018-10", "2018-11", "2018-12"), values= c(0,1,2,3,4,5,6)) %>% 
      arrange(dates) %>% 
      mutate(dates = as.Date(paste0(dates, "-01")))
    
    
    ggplot(df, aes(x = dates, y = values)) + 
    geom_bar(position="dodge", stat="identity") +
    scale_x_date(date_breaks="1 month", date_labels="%Y %m") +
    theme_light() +
    xlab('Month') +
    ylab('values')
    

    0 讨论(0)
提交回复
热议问题