作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个数据框 filter
,它是数据帧的子集 df2
,这是用 dyplr 制作的 mutate()
功能。
我想遍历一些列并用它们制作散点图。
我的循环:
colNames <- names(filter)[9:47]
for(i in colNames){
ggplot(filter, aes(x=i, y=CrimesPer10k)) +
geom_point(color="#B20000", size=4, alpha=0.5) +
geom_hline(yintercept=0, size=0.06, color="black") +
geom_smooth(method=lm, alpha=0.25, color="black", fill="black")
}
最佳答案
您需要明确 print()
ggplot()
返回的对象在 for
循环因为自动- print()
ing 在那里(以及其他一些地方)关闭。
您还需要使用 aes_string()
代替 aes()
因为你没有使用 i
作为 filter
中的实际变量但作为包含变量(依次)的字符串 filter
被绘制。
这是一个实现这两者的示例:
Y <- rnorm(100)
df <- data.frame(A = rnorm(100), B = runif(100), C = rlnorm(100),
Y = Y)
colNames <- names(df)[1:3]
for(i in colNames){
plt <- ggplot(df, aes_string(x=i, y = Y)) +
geom_point(color="#B20000", size=4, alpha=0.5) +
geom_hline(yintercept=0, size=0.06, color="black") +
geom_smooth(method=lm, alpha=0.25, color="black", fill="black")
print(plt)
Sys.sleep(2)
}
关于r - 如何遍历列名并为每个列名制作 ggplot 散点图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29425892/
我是一名优秀的程序员,十分优秀!