在ggplot中,如何使用函数时将绘图标题设置为选择的x变量

In ggplot, how to set plot title as x variable choosed when using a function

提问人:Laura 提问时间:4/11/2022 更新时间:4/11/2022 访问量:202

问:

我有一个函数,当我选择变量时,它会为我绘制一个 ggplot。

它运作良好。

gg_f <- function(df, var_x){

  ggplot(df, aes(x = {{var_x}}, mpg)) + geom_point()

}

gg_f(df = mtcars, var_x = cyl)

但是当我尝试将绘图标题设置为我选择的变量时,我遇到了问题。var_x

我尝试使用但没有用:glue

gg_f <- function(df, var_x){
    
    ggplot(mtcars, aes(x = {{var_x}}, mpg)) + geom_point() + labs(title = glue::glue({var_x})
    
}

我该怎么做?

r ggplot2

评论

1赞 Kat 4/11/2022
看看这个问答是否有帮助

答:

3赞 Allan Cameron 4/11/2022 #1

你可以使用substitute(var_x)

library(ggplot2)

gg_f <- function(df, var_x){

  ggplot(df, aes(x = {{var_x}}, mpg)) + 
    geom_point() +
    labs(title = substitute(var_x))

}

gg_f(df = mtcars, var_x = cyl)

或:rlang::englue

library(ggplot2)

gg_f <- function(df, var_x){

  ggplot(df, aes(x = {{var_x}}, mpg)) + 
    geom_point() +
    labs(title = rlang::englue("{{var_x}}"))

}

gg_f(df = mtcars, var_x = cyl)

创建于 2022-04-10 由 reprex 软件包 (v2.0.1)

评论

1赞 Axeman 4/11/2022
我想版本是.rlanglabs(title = as_name(enquo(var_x)))
3赞 Allan Cameron 4/11/2022
@Axeman 或rlang::englue
0赞 Laura 4/11/2022
@AllanCameron 如果我想使用“外部”我的函数?像这样:gg_f(df = mtcars, var_x = cyl) + labs(......)
0赞 Allan Cameron 4/11/2022
@Laura,如果它超出了你的功能,你为什么不直接放呢?labs(title = "cyl")
3赞 Allan Cameron 4/11/2022
@Laura但是,如果您将“labs()”放在函数外部,则除了直接指定参数外,您无法向其传递参数。