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
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")) ##
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')