我有一个dataframe filter
,它是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")
}
然而,我没有得到任何输出,也没有任何错误。
我做错了什么?
2条答案
按热度按时间mfuanj7w1#
您需要在
for
循环中显式地print()
由ggplot()
返回的对象,因为auto-print()
ing在那里(以及其他一些地方)被关闭。您还需要使用
aes_string()
代替aes()
,因为您没有将i
用作filter
中的实际变量,而是将其用作包含要绘制的filter
中的变量(反过来)的字符串。下面是一个实现这两种方法的示例:
wz1wpwve2#
aes_string()在ggplot 2> 3.0.0中被弃用,但可以使用.data。