r - 无法打印我需要的所有 ggplot 图表
问题描述
在Looping over variables in ggplot中有一个关于在循环中使用 ggplot 和其他创造性方式的很好的讨论。但是,讨论并没有完全解决我的问题。
我有一个垂直数据集,我需要从循环中创建图。代码中没有错误,但我的代码只打印最后一个图。想不通为什么。这是一个可重现的示例:
df <- cbind.data.frame(var = sample(c('a','b'), size = 100, replace = TRUE),
grp = sample(c('x','y'), size = 100, replace = TRUE), value = rnorm(100))
for (i in 2) {
plot.df <- df[which(df$var == c('a','b')[i]),]
print(ggplot(plot.df, aes(x = 1:nrow(plot.df), y = value, color = grp)) +
geom_line() + ggtitle(c('a','b')[i]))
}
解决方案
@EJJ 的评论是正确的,你的循环不是你需要的东西
for (i in seq_along(1:nlevels(factor(df$var))))
library(ggplot2)
library(dplyr)
df <- cbind.data.frame(var = sample(c('a','b'), size = 100, replace = TRUE),
grp = sample(c('x','y'), size = 100, replace = TRUE), value = rnorm(100))
for (i in seq_along(1:nlevels(factor(df$var)))) {
plot.df <- df[which(df$var == c('a','b')[i]),]
print(ggplot(plot.df, aes(x = 1:nrow(plot.df), y = value, color = grp)) +
geom_line() + ggtitle(c('a','b')[i]))
}
推荐阅读
- angular - 来自解析器的 Angular 7 rxjs 订阅有什么问题
- excel - 在使用 VBA 循环遍历范围时查找确切的字符串
- ng-modules - Angular 8:没有为组件找到组件工厂-甚至在 app.module.ts 中添加
- excel - 如何检查此代码中是否存在工作表
- group-by - 如何不让 dplyr 变异计算缺失组
- php - 如何在 Laravel 应用程序中使一个类全局可访问?
- vue.js - Vue 组件中 HTML 元素 id 的作用域
- swift - Swift (macOS):使用文件启动 TextEdit
- java - 如何从 Web 应用程序中预选特定打印机
- angular - shareReplay 更改顺序