R ggplot - 通用函数中的箱线图

乔托姆

随着ggplot我试图做一个自定义函数的情节boxplot在一个单个列dataframe,使得它可以与任何使用dataframe

具体例子

male = data.frame(male = c(127,44,28,83,0,6,78,6,5,213,73,20,214,28,11)) # data from 
ggplot(data = male, aes(x = "", y = male)) + geom_boxplot() +
  stat_summary(fun=mean, geom="point", shape=20, size=2, color="red", fill="red")

这给出了以mean显示为点的预期箱线图

在此处输入图片说明

泛化函数——这里具体例子中完成的操作被包装成一个泛化函数

boxPlotFn = function (df, colName) {
  ggplot(data = df, aes_string(x = "", y = colName)) + geom_boxplot() + 
    stat_summary(fun=mean, geom="point", shape=20, size=2, color="red", fill="red")
}

我调用如下函数

boxPlotFn(male, "male")

但是,这给出了错误Error: No expression to parse-rlang::last_error()表明错误发生在调用ggplot. 我在这里没有做什么?

斯蒂芬

这有点棘手,但很容易解决。要使您的函数与aes_string一起使用,您必须引用x使用例如单引号映射的“双引号” 此外,它可能应该data = df在您的函数中:

library(ggplot2)

male = data.frame(male = c(127,44,28,83,0,6,78,6,5,213,73,20,214,28,11)) # data from 

boxPlotFn = function (df, colName) {
  ggplot(data = df, aes_string(x = '""', y = colName)) + 
    geom_boxplot() + 
    stat_summary(fun=mean, geom="point", shape=20, size=2, color="red", fill="red")
}

boxPlotFn(male, "male")

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章