合并单独的月份和年份列以在ggplot2中绘图

时间:2019-03-26 15:26:51

标签: r ggplot2 dplyr

我一直在论坛中寻找解决问题的方法,但似乎找不到任何东西。我的问题的派生词和他们的回答也没有帮助。我的数据有四列,一列表示“年”,一列表示“月”。我一直想在ggplot中多年不使用任何方面来将数据全部绘制在一张图中。到目前为止,这是我一直在努力的事情:

df<-data.frame(Month = rep(c("January", "February", "March", "April", "May", "June",
                         "July", "August", "September", "October", 
                         "November", "February", "March"),each = 20), 
           Year = rep(c("2018", "2019"), times = c(220, 40)), 
                      Type = rep(c("C", "T"), 260), 
                                 Value = runif(260, min = 10, max = 55))
df$Month<-ordered(df$Month, month.name)
df$Year<-ordered(df$Year)
ggplot(df) + 
  geom_boxplot(aes(x = Month, y = Value, fill = Type)) +
  facet_wrap(~Year)

理想情况下,我想使用dplyr和lubridate进行管理。任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:4)

一种选择是制作一个真实的日期值,然后可以使用日期轴格式化程序。这样的事情是一个艰难的开始

ggplot(df) + 
  geom_boxplot(aes(x = lubridate::mdy(paste(Month, 1, Year)), y = Value, fill = Type, group=lubridate::mdy(paste(Month, 1, Year)))) + 
  scale_x_date(breaks="month", date_labels = "%m")

enter image description here

答案 1 :(得分:0)

你是这个意思吗?

 df<-data.frame(Month = rep(c("January", "February", "March", "April", "May", "June",
                             "July", "August", "September", "October", 
                             "November", "February", "March"),each = 20), 
               Year = rep(c("2018", "2019"), times = c(220, 40)), 
               Type = rep(c("C", "T"), 260), 
               Value = runif(260, min = 10, max = 55))
df$Month <- factor(df$Month,levels=c("January", "February", "March", "April", "May", "June",
                             "July", "August", "September", "October", 
                                  "November", "Dicember"), ordered = T)
df$Month<-ordered(df$Month)
df$Year<-ordered(df$Year)
df$Year_Month <- paste0(df$Month, " ", df$Year)

df$Year_Month <- factor(df$Year_Month, levels = unique(df$Year_Month))

ggplot(df) + 
  geom_boxplot(aes(x = Year_Month, y = Value, fill = Type)) 

enter image description here

相关问题