我有这个样本数据。
sample <- data.frame(sample = 1:12,
site = c('A','A','A','B','B','B','A','A','A','B','B','B'),
month = c(rep('Feb', 6), rep('Aug', 6)),
Ar = c(7,8,9,8,9,9,4,5,7,5,8,9))
并创建了两个箱图
ggplot(sample, aes(x=factor(month), y=Ar)) +
geom_boxplot(aes(fill=site))
ggplot(sample, aes(x=factor(month), y=Ar)) +
geom_boxplot()
我想知道是否有办法将它们组合在同一个图表中,以便每个月的总数,站点A和站点B彼此相邻。
答案 0 :(得分:0)
您可以使用dplyr
(通过tidyverse
包)和reshape2
。
library(dplyr)
library(reshape2)
sample%>%
dplyr::select(-sample) %>%
mutate(global = 'Global') %>%
melt(., id.vars=c("month", "Ar")) %>%
ggplot(aes(month, Ar)) + geom_boxplot(aes(month, Ar, fill=value))
这会删除当前未使用它的示例列,在单独的列中添加术语global,通过melt
函数重新整形数据并生成图形。请注意,我在原始问题中更改了输入代码格式。通过对data.frame的更改,您不再需要将变量强制转换为因子。