R 如何循环浏览列名并为每个列名创建ggplot散点图
我有一个dataframeR 如何循环浏览列名并为每个列名创建ggplot散点图,r,ggplot2,R,Ggplot2,我有一个dataframe过滤器,它是dataframedf2的一个子集,由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_hlin
过滤器,它是dataframedf2
的一个子集,由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")
}
colNames您需要在for
循环中显式地print()
由ggplot()
返回的对象,因为自动print()
在那里(和其他一些地方)是关闭的
您还需要使用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)
}
Y