使用ggplot2在一个图上绘制多个箱图

时间:2012-06-01 09:11:39

标签: r ggplot2 boxplot

当我使用此代码时,标准R绘图在一个图中产生30个箱图:

boxplot(Abundance[Quartile==1]~Year[Quartile==1],col="LightBlue",main="Quartile1 (Rare)")

我想在ggplot2中生成类似的东西。到目前为止我正在使用它:

d1 = data.frame(x=data$Year[Quartile==1],y=data$Abundance[Quartile==1])
a <- ggplot(d1,aes(x,y))
a + geom_boxplot()

有30年的数据。每年有145种。在每年,145种物种被分为1-4的四分位数。

但是,我只使用这个获得了一个盒子图。知道如何沿x轴获得30个箱图(每年一个)吗?任何帮助非常感谢。

有30年的数据。每年有145种。在每年,145种物种被分为1-4的四分位数。

1 个答案:

答案 0 :(得分:8)

str(d1)告诉您x的内容是什么?如果是数字或整数,那么这可能是你的问题。如果Year是一个因素,那么每个年份都会得到一个箱线图。举个例子:

library(ggplot2)

# Some toy data
df <- data.frame(Year = rep(c(1:30), each=20), Value = rnorm(600))
str(df)

请注意Year是一个整数变量

ggplot(df, aes(Year, Value)) + geom_boxplot()   # One boxplot

ggplot(df, aes(factor(Year), Value)) + geom_boxplot()   # 30 boxplots