R ggplot2 aes参数

韩宝

我有一个功能:

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

我有一个数据框:

df = data.frame(v0 = c(1,2,3), v1 = c(2,3,4), v2 = c(3,4,5))

我想生成图:(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

非常感谢任何想法!

阿克伦

如果我们传递的字符串未加引号,则将其转换为quosure,然后求值(!!

library(rlang)
library(ggplot2)#devel version

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

如果我们x以字符串形式传递,则替换aesaes_string

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章