【发布时间】:2017-08-17 17:50:44
【问题描述】:
我在 ggplot 中为显示平均值的箱线图开发了代码——调用自定义函数。代码如下:
fun_mean <- function(x){
return(data.frame(y=round(mean(x), digits = 3),label=mean(x,na.rm=T)))}
ggplot(my_data, aes(x = as.factor(viotiko), y = pd_1year, fill = as.factor(viotiko))) + geom_boxplot() +
labs(title="Does the PD differ significantly by 'Viotiko' group?",x="Viotiko Group", y = "PD (pd_1year)") +
coord_cartesian(ylim = c(0,0.05)) + stat_summary(fun.y = mean, geom="point",colour="darkred", size=3) +
stat_summary(fun.data = fun_mean, geom="text", vjust=-0.7)
输出的箱线图如下:
如您所见,虽然我已将平均值四舍五入,只包含 3 个十进制数字,但它们看起来很长并且使情节混乱。
我应该怎么做才能将显示的数字限制为 3?
此外,我对大多数组中均值出现在箱线图所描绘的分布之外这一事实感到困惑。这怎么解释?
您的建议将不胜感激。
【问题讨论】:
-
或许
label = round(mean(x,na.rm=T), 3)? -
要回答您的第二个问题(并且作为关于 SO 问题的一般规则),请提供minimal reproducible example,例如
dput(my_data)的结果。否则,您的问题可能会被否决或关闭。谢谢。
标签: r ggplot2 rounding mean boxplot