R ggplot2:带组平均值的堆栈条形图
我尝试了几种方法来制作ggplot柱状图,这些方法都是从数据帧中的因子中导出的,但我没有成功。 如果你考虑:R ggplot2:带组平均值的堆栈条形图,r,ggplot2,R,Ggplot2,我尝试了几种方法来制作ggplot柱状图,这些方法都是从数据帧中的因子中导出的,但我没有成功。 如果你考虑: df <- as.data.frame(matrix(rnorm(60*2, mean=3,sd=1), 60, 2)) df$factor <- c(rep(factor(1:3), each=20)) df对于任何如此复杂的事情,我认为预先计算数字,然后绘制它们更容易。使用dplyr/tidyr(即使是错误条)也可以轻松做到这一点: 当然,这看起来有点奇怪,因为在堆叠
df <- as.data.frame(matrix(rnorm(60*2, mean=3,sd=1), 60, 2))
df$factor <- c(rep(factor(1:3), each=20))
df对于任何如此复杂的事情,我认为预先计算数字,然后绘制它们更容易。使用dplyr/tidyr(即使是错误条)也可以轻松做到这一点:
当然,这看起来有点奇怪,因为在堆叠的条中大约有100%的错误条。我认为最好绘制实际数据点,加上平均值和误差条,并使用镶嵌面:
gather(df, 'cat', 'value', 1:2) %>%
group_by(cat, factor) %>%
summarise(mean=mean(value), se=sd(value)/sqrt(n())) %>%
ggplot(aes(x=cat, y=mean, colour=factor(factor))) +
geom_point(aes(y=value), position=position_jitter(width=.3, height=0), data=gather(df, 'cat', 'value', 1:2) ) +
geom_point(shape=5, size = 3) +
geom_errorbar(aes(ymin=mean-se, ymax=mean+se), width=.1) +
facet_grid(factor ~ .)
通过这种方式,任何人都可以检查数据,并自行确定它们是正态分布的为什么需要带均值的堆叠条形图?我想这很难解释。我对三个物种每6次测量有60次。数据几乎是正态分布的,我想展示每个物种的年度变化。因此,条形图代表60个采样场的平均物种丰度。
gather(df, 'cat', 'value', 1:2) %>%
group_by(cat, factor) %>%
summarise(mean=mean(value), se=sd(value)/sqrt(n())) %>%
ggplot(aes(x=cat, y=mean, colour=factor(factor))) +
geom_point(aes(y=value), position=position_jitter(width=.3, height=0), data=gather(df, 'cat', 'value', 1:2) ) +
geom_point(shape=5, size = 3) +
geom_errorbar(aes(ymin=mean-se, ymax=mean+se), width=.1) +
facet_grid(factor ~ .)