Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何循环浏览列名并为每个列名创建ggplot散点图_R_Ggplot2 - Fatal编程技术网

R 如何循环浏览列名并为每个列名创建ggplot散点图

R 如何循环浏览列名并为每个列名创建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

我有一个dataframe
过滤器,它是dataframe
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")
}

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