gpt4 book ai didi

r - 如何遍历列名并为每个列名制作 ggplot 散点图

转载 作者:行者123 更新时间:2023-12-04 11:54:21 25 4
gpt4 key购买 nike

我有一个数据框 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com