随着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] 删除。
我来说两句