首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >函数调用的ggplot中的EXPSS标签

函数调用的ggplot中的EXPSS标签
EN

Stack Overflow用户
提问于 2021-12-20 22:00:12
回答 1查看 60关注 0票数 1

我很难将变量的标签(由expss包提供)组合到一个ggplot2图中,这个函数我已经写了好几遍了。换句话说,下面的代码按预期工作。

代码语言:javascript
复制
data(mtcars)
library(expss)
library(ggplot2)

mtcars <- apply_labels(mtcars,
                   mpg = "MPG",
                   cyl = "CYL",
                   wt = "WEIGHT")

use_labels(mtcars, {
    # from the example of the package's vignette
    ggplot(..data) +
        geom_point(aes(y = mpg, x = wt))
}) 

如果我想写一个像

代码语言:javascript
复制
myplot <- function(x,y) {
     ggplot(data=mtcars) +
        geom_point(aes(y = {{y}}, x = {{x}}))
}

myplot(mpg, cyl)
myplot(mpg, wt)

这也是适当的。

但如果我用

代码语言:javascript
复制
myplot <- function(x,y) {
     use_labels(data=mtcars, { 
     ggplot(..data) +
        geom_point(aes(y = y, x = x))
  })
}

myplot("mpg", "cyl")

这不再起作用了,即情节不正确,标签也不显示。

我试过了

代码语言:javascript
复制
myplot <- function(x,y) {
     use_labels(data=mtcars, { 
     ggplot(data=mtcars) +
        geom_point(aes(y = mtcars[[y]], x = mtcars[[x]]))
  })
}

myplot("mpg", "cyl")

那么情节是正确的,但标签没有显示.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-21 18:17:31

更简单的解决方案:ggeasy包(https://rdrr.io/cran/ggeasy/man/easy_labs.html)

以下内容非常有效:

代码语言:javascript
复制
myplot <- function(x,y) {
     ggplot(data=mtcars) +
        geom_point(aes(y = {{y}}, x = {{x}}))+
        ggeasy::easy_labs(teach=TRUE)
}

myplot(mpg, cyl)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70428492

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档