R将变量列索引传递给ggplot2

时间:2013-03-17 07:30:37

标签: r ggplot2 dataframe

我正在尝试将列索引传递给ggplot作为我将重复使用的函数的一部分。 像:

myplot <- function(df){
    ggplot(df, aes(df[, 1], df[, 2])) + geom_point()
}

我将始终使用第一列作为我的x变量而第二列作为我的y变量,但列名在数据集之间更改。我一直在搜索..有什么想法吗?

编辑:

这是我使用的答案:

require(ggplot2)

myplot <- function(df){
   ggplot(df, aes_string(colnames(df)[1], colnames(df)[2])) + geom_point()
}

1 个答案:

答案 0 :(得分:100)

您可以使用aes_string代替aes来传递字符串而不是使用对象,即:

myplot = function(df, x_string, y_string) {
   ggplot(df, aes_string(x = x_string, y = y_string)) + geom_point()
 }
myplot(df, "A", "B")
myplot(df, "B", "A")