R ggplot2 aes参数

Han*_*nbo 4 visualization r ggplot2

我有一个功能:

vis = function(df, x){
p1 <- ggplot(df, aes(x)) + geom_line(aes(y = v2))
p1
}
Run Code Online (Sandbox Code Playgroud)

我有一个数据框:

df = data.frame(v0 = c(1,2,3), v1 = c(2,3,4), v2 = c(3,4,5))
Run Code Online (Sandbox Code Playgroud)

我想生成图:(1)v2 vs v0,(2)v2 vs v1。

所以我尝试了:

vis(df, v0) // not work
vis(df, v1) // not work
vis(df, "v0") // not work
vis(df, "v1") // not work
Run Code Online (Sandbox Code Playgroud)

非常感谢任何想法!

avi*_*seR 5

使用quo_name和的另一种方法aes_string。这不需要开发版本ggplot2

library(ggplot2)
library(rlang)

vis = function(df, x){
  x <- enquo(x)
  ggplot(df, aes_string(quo_name(x))) + geom_line(aes(y = v2))
}

vis(df, v0)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明