r - 在ggplot循环中制作条形图ggplot
问题描述
这个问题是上一篇文章的延伸:ggplot and loops
我使用上面的示例在循环中生成条形图。我修改了上面的例子,生成了一个条形图和相应的误差线。我有点成功,但是误差条不会根据单个变量填充。
我将非常感谢您的帮助!
我的修改:
#make a dummy dataframe
D <- data.frame(
x1 = runif(20),
x2 = rnorm(20),
x1_se = runif(20, 0.01, 0.09),
x2_se = runif(20, -1, 1),
treatment = rep(c("control","test"), each = 10)
)
# for reference later
p_names <- c("treatment","x1","x2")
se_names <- c("treatment","x1_se","x2_se")
trt <- rep(c("control","test"), each = 10)
# subset the standard error into its own dataframe
se <- D[,se_names]
names(se) <- str_remove(names(se), "_se")
plots <- list()
# the loop
for(nm in p_names) {
#trt <- trt
plots[[nm]] <- ggplot(data= D, aes(x = trt, fill = trt)) +
geom_bar(aes_string(y = D[[nm]]), stat="identity", position = "dodge", color = "black") +
geom_errorbar(aes(ymin= D[[nm]] - se[[nm]],
ymax= D[[nm]] + se[[nm]]), position=position_dodge(.9)) + ylab(nm)
}
print(plots[["x1"]])
print(plots[["x2"]])
```
解决方案
推荐阅读
- laravel - laravel 模型和控制器最佳实践
- mysql - MySQL Left Join 执行时间过长
- elasticsearch - Elasticsseach 无法将非对象映射与对象映射合并
- javascript - 使用异步函数将属性添加到对象数组
- java - 如何使用带有 Spring Boot 的 websockets 建立一对一的持久消息传递应用程序?
- android - 我可以在 Auto Linux BSP 上安装 adb 吗?
- nft - 不同的二进制代码集可以代表相似的数字信息吗?
- alias - 无服务器:在部署时,以前的别名在新部署时丢失
- ios - 有没有办法让 Appium 专注于 Safari 中的新窗口选项卡?
- delphi - 如何通过 Linux 平台在 Delphi 中链接目标文件?