繁体   English   中英

使用ggplot在R中躲避boxplot

[英]Dodged boxplot in R using ggplot

我试图创建一个躲避的箱线图而不使用facet_wrap,因为facet_wrap改变了我的要求的外观。 我有一个包含三个变量的数据框-时间,周数和区域

dput(df)
structure(list(time = c(2657L, 2319L, 2324L, 2348L, 2134L, 2251L, 
1848L, 1816L, 1893L, 2177L, 3387L, 2329L, 6964L, 2162L, 6682L, 
2268L, 5419L, 2088L, 3758L, 3021L, 2833L, 2950L, 4554L, 1213L, 
2085L, 1529L, 821L, 2406L, 2008L, 1264L, 2186L, 1654L, 1757L, 
2116L, 1876L, 2088L, 1900L, 2767L, 3051L, 1762L, 1499L, 1157L, 
1529L, 1396L, 1278L, 3367L, 1647L, 4393L, 2358L, 1535L, 2469L, 
2068L, 505L, 335L, 410L, 1159L), region = structure(c(1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L), .Label = c("A", "B", "C"), class = "factor"), 
week_num = c(20L, 22L, 20L, 21L, 21L, 21L, 21L, 21L, 21L, 
21L, 21L, 21L, 21L, 21L, 22L, 22L, 22L, 22L, 22L, 22L, 22L, 
22L, 22L, 20L, 22L, 22L, 22L, 21L, 22L, 22L, 21L, 22L, 22L, 
21L, 19L, 19L, 22L, 18L, 20L, 21L, 21L, 21L, 21L, 21L, 21L, 
22L, 22L, 18L, 22L, 22L, 21L, 21L, 22L, 22L, 22L, 22L)), .Names = c("time", 
"region", "week_num"), row.names = c(NA, -56L), class = "data.frame")

我需要对应于每个week_num的每个区域的躲闪的箱形图。 我实现的代码是这样的。

plot_df= ggplot(data=df)+geom_boxplot(aes(x=week_num,y=time,group=week_num,fill=region),position =position_dodge(width=1))

我得到的情节就是这样。

箱线图输出

填充值未正确到达,也未发生闪避。 对于具有多个区域值的x值,颜色看起来是灰色的。 有什么办法解决问题?

问题是您的week_num变量不是一个因素,尽管您希望根据它来分组。

下面的简单代码行应能达到您想要的结果。 (或者只是通过在week_num周围添加factor()来更改版本。)

ggplot(df, aes(y = time, x = factor(week_num), fill = region)) + geom_boxplot()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM