R 将单独的月份和年份列合并到ggplot2中的图形中
我一直在论坛上寻找我的问题的解决方案,但似乎什么都找不到。我的问题和他们的答案的衍生物也没有真正的帮助。我的数据有四列,一列表示年份,一列表示月份)。多年来,我一直希望在一个图形中绘制所有数据,而不使用ggplot中的任何方面。这就是我一直在努力解决的问题:R 将单独的月份和年份列合并到ggplot2中的图形中,r,ggplot2,dplyr,R,Ggplot2,Dplyr,我一直在论坛上寻找我的问题的解决方案,但似乎什么都找不到。我的问题和他们的答案的衍生物也没有真正的帮助。我的数据有四列,一列表示年份,一列表示月份)。多年来,我一直希望在一个图形中绘制所有数据,而不使用ggplot中的任何方面。这就是我一直在努力解决的问题: df<-data.frame(Month = rep(c("January", "February", "March", "April", "May", "June", "July",
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)
df你是这个意思吗
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))
df一个选项是生成一个真实的日期值,然后可以使用日期轴格式化程序。这是一个艰难的开始
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")
Hi@MrFlick感谢您的快速回复,我认为这可能会奏效。有没有关于如何在这两个月之间添加垂直线的想法,尤其是当x轴在日期等级上时?@LeoOhyama你的意思是:完全正确!非常感谢!嘿@MrFlick。我还有一个问题。您的答案指定了变量“type”的填充美学,但图形仍然没有显示此填充。