2016-10-27 3 views
1

Скажем, у меня есть следующий кадрГистограмма графов с гранильной ggplot2

category = c("A", "B", "C", "B", "A", "B") 
Jan.10 = c(20,10,30,20,15,46) 
Feb.10 = c(10,10,40,20,25,46) 
Mar.10 = c(40,10,80,20,25,56) 
Jan.11 = c(50,10,20,20,45,56) 
Feb.11 = c(70,10,30,20,35,46) 
Mar.11 = c(60,10,50,20,25,66) 
df <- data.frame(category, Jan.10, Feb.10, Mar.10, Jan.11, Feb.11, Mar.11) 

данных Как создать три гистограммы по огранке, по одному для каждой категории, с месяца на оси х и рассчитывает на ось у? Нечто подобное я пытаюсь получить: example-image

Это моя лучшая попытка до сих пор:

df_melt <- df %>% melt() 
df_melt$variable <- as.yearmon(df_melt$variable, "%b.%y") 

ggplot(df_melt, aes(x=variable)) + 
    geom_histogram() + 
    xlab("Year and Month") + 
    ylab("Sales") + 
    facet_grid(category ~.) + 
    theme_bw() 

Но он не работает правильно.

Любая помощь была бы высоко оценена!

ответ

0

Я думаю, что вы хотите что-то вроде этого:

df_melt <- df %>% melt() 
df_melt$variable <- as.yearmon(df_melt$variable, "%b.%y") 

ggplot(df_melt, aes(x=variable, y=value)) + 
    geom_bar(stat='identity') + 
    xlab("Year and Month") + 
    ylab("Sales") + 
    facet_wrap(~category, ncol = 1) + 
    theme_bw() 

enter image description here

+0

Coming с ошибкой здесь: «Не знаю, как автоматически выбрать масштаб для объекта типа yearmon Дефолт к непрерывным.. " С моим графиком существует большой пробел, и даты выглядят как цифры 2010.0 2010.4 .... «Я нахожусь на ggplot2_2.1.0. Я добавил в scale_x_yearmon(), и теперь он работает, тем не менее, есть промежуток в середине. Я выясню это еще некоторое время. Спасибо за ответ @sandipan. Этот был действительно разрушает мою голову! – filod

Смежные вопросы