R ggplot箱图通过组合因子进行分组图

  • 本文关键字:组合 ggplot r ggplot2 boxplot
  • 更新时间 :
  • 英文 :


我有一些每年6月和12月的水质(金属(结果。我当前的df有Month,Year,Detection。我想按每次测试分组,即2019年6月、2019年12月和2020年6月。我可以创建一个新的因子,比如Test,其值为061912190620。此外,我可以为每个值创建一个来自(Month-Year(的新因子。在此之前,我想知道geom_boxplot是否可以结合月份、年份的因素来完成3个独特测试的绘制。按年份或月份分组不会给我3个独特的测试。

我正在寻找一个新的因子路由之前的调用语法解决方案。

ggplot(data = Agm, aes(x = Month+Year, y = Level) , na.rm=TRUE) + 
ggtitle("Lead Levels",subtitle=subtext )+
xlab("Test") + ylab("ppb") +
geom_boxplot( fill="red",width = 0.8) + theme_bw()

如果我理解正确,您希望使用两列因子(月和年(显示方框图。

有几种方法可以实现这一点。首先,您可以简单地将列粘贴到ggplot调用中,例如:

ggplot(data = Agm, aes(x = paste(Year, Month), y = Level)) + 
geom_boxplot() + theme_bw()

在这种情况下,我通常会创建一个新列,并将其用作X轴的变量。这将使您在管理价值及其显示方式方面具有更大的灵活性。例如:

library(tidyverse)
# Create a new Date column, combining year and month, separated by a -
Agm <- Agm %>% mutate(Date = paste(Year, Month, sep = "-") %>% arrange(Date)
ggplot(data = Agm, aes(x = Date, y = Level)) + 
geom_boxplot() + theme_bw()

请注意,当使用上面的任何一种方法时,我建议您像我所做的那样,先按年份,然后按月份加入,这样就不会在绘图中对数据排序错误。如果你先做月份,那么所有年份的一月都会显示在最前面/最左边,然后是二月或十月,这取决于你是否有前导零。

最新更新