Jam*_*ite 4 r bar-chart ggplot2
我试图找到在 R 中创建条形图并显示标准错误的最佳方法。我看过其他文章,但我无法弄清楚要与我自己的数据一起使用的代码(之前没有使用过 ggplot,这似乎是最常用的方式,而 barplot 不与数据框合作)。我需要在我创建了两个示例数据帧的两种情况下使用它:
绘制 df1 以便 x 轴具有站点 ac,y 轴显示 V1 的平均值并突出显示标准误差,类似于此示例,带有灰色。在这里,植物生物量应该是平均 V1 值,处理应该是我的每个站点。
以相同的方式绘制 df2,但使 before 和 after 以与this类似的方式彼此相邻,因此在我的示例中,预测试和后测试等同于之前和之后。
x <- factor(LETTERS[1:3])
site <- rep(x, each = 8)
values <- as.data.frame(matrix(sample(0:10, 3*8, replace=TRUE), ncol=1))
df1 <- cbind(site,values)
z <- factor(c("Before","After"))
when <- rep(z, each = 4)
df2 <- data.frame(when,df1)
Run Code Online (Sandbox Code Playgroud)
对于经验丰富的 R 用户,尤其是那些使用 ggplot 但我无法将我在其他地方找到的代码片段应用到我的数据的用户的简单性,我们深表歉意。我什至无法获得足够的代码来生成图表的开始,所以我希望我的描述足够了。先感谢您。
像这样的东西?
library(ggplot2)
get.se <- function(y) {
se <- sd(y)/sqrt(length(y))
mu <- mean(y)
c(ymin=mu-se, ymax=mu+se)
}
ggplot(df1, aes(x=site, y=V1)) +
stat_summary(fun.y=mean, geom="bar", fill="lightgreen", color="grey70")+
stat_summary(fun.data=get.se, geom="errorbar", width=0.1)
Run Code Online (Sandbox Code Playgroud)
ggplot(df2, aes(x=site, y=V1, fill=when)) +
stat_summary(fun.y=mean, geom="bar", position="dodge", color="grey70")+
stat_summary(fun.data=get.se, geom="errorbar", width=0.1, position=position_dodge(width=0.9))
Run Code Online (Sandbox Code Playgroud)
因此,这利用了stat_summary(...)ggplot中的函数,首先y对给定x使用mean(...)(对于条)进行汇总,然后使用误差条的函数对y给定x进行汇总get.se(...)。另一种选择是在使用 ggplot 之前汇总您的数据,然后使用geom_bar(...)和geom_errorbar(...)。
此外,绘制 +/- 1 se 不是一个很好的做法(尽管它经常使用)。您最好绘制合法的置信限制,例如,您可以使用内置mean_cl_normal函数而不是人为的get.se(...). mean_cl_normal基于数据呈正态分布的假设返回 95% 置信限(或者您可以将 CL 设置为其他内容;阅读文档)。
| 归档时间: |
|
| 查看次数: |
5411 次 |
| 最近记录: |