在ggplot2中使用变量名

3
我正在尝试在ggplot2中运行此代码,它可以完美地运行。
p <- ggplot(diamonds, aes(x= depth , y = price), color = cut))
p + geom_point()

现在我想使用变量传递xy,以便我可以在for循环中使用它们。
var1  <- colnames(diamonds)

var1是一个向量,包含以下变量:

[1] "carat"   "cut"     "color"   "clarity" "depth"   "table"  
 [7] "price"   "x"       "y"       "z"    

我使用以下公式,应该等同于上面的ggplot2
p <- ggplot(diamonds, aes(x= var1[5] , y = var1[7]), color = cut))
p + geom_point()

这一次,var1[5]被视为一个变量,var1[7]也被视为另一个变量,而不是它们被解析成深度和价格。

有没有什么方法可以解决这个问题。我已经使用了paste函数,但似乎没有起作用。


6
使用aes_string函数。 - Rorschach
另外请参阅“使用ggplot2进行编程”,了解如何使用ggplot2编写可重用函数:https://rpubs.com/hadley/97970 - mkhezr
这个回答是否解答了你的问题?如何在ggplot中使用变量来指定列名 - user438383
1个回答

2

像评论中已经提到的那样:aes_string 是正确的选择:

library(ggplot2)
var1  <- colnames(diamonds)
p <- ggplot(diamonds, aes_string(x= var1[5] , y = var1[7]), color = cut)
p + geom_point()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接