отсутствующие ярлыки yearmon, использующие ggplot scale_x_yearmon - PullRequest
0 голосов
/ 08 февраля 2019

Я сгруппировал некоторые данные по месяцам и годам, преобразовал их в годмон с помощью zoo и теперь строю их в ggplot.Кто-нибудь знает, почему отсутствует один из ярлыков, а есть один на 2018-07, когда нет данных за этот месяц?

Пример данных:

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))
df$dates <- as.yearmon(df$dates)

ggplot(df, aes(x = dates, y = values)) + 
  geom_bar(position="dodge", stat="identity") +      
  theme_light() +
  xlab('Month') +
  ylab('values')+ 
  scale_x_yearmon(format="%Y %m")

enter image description here

Ответы [ 2 ]

0 голосов
/ 08 февраля 2019

Я думаю, scale_x_yearmon предназначалось для графиков xy, так как оно вызывает scale_x_continuous, но мы можем просто так назвать scale_x_continuous самим собой (меняется только строка, помеченная ##):

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

screenshot

0 голосов
/ 08 февраля 2019

Я думаю, что это проблема с отображением zoo объектов.Используйте стандартный класс Date и укажите метку даты в ggplot.Вам необходимо добавить день в строку символов для вашего столбца dates.Тогда вы можете использовать scale_x_date и указать 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')

result plot

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...