R ggplot boxplot 通过组合因素绘制组图

R ggplot boxplot group plots by combining factors

我有一些每年 6 月和 12 月进行的水质(金属)结果。我当前的 df 有月、年、检测。我想按每个测试分组,即 2019 年 6 月、2019 年 12 月和 2020 年 6 月。我可以创建一个新的因子,比如测试,值为 0619、1219、0620。我还可以从(年月)为每个测试创建一个新因子价值。 在此之前,我想知道 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()

请注意,当使用上述任何一种方法时,我建议您首先根据年份加入,然后像我所做的那样加入月份,这样它就不会在您的绘图上错误地排序数据。如果您先选择月份,那么所有年份的一月将显示最多 first/left,然后是二月或十月,具体取决于您是否有前导零。