ggplot中如何将stat_summary生成的样本量文本置于y=0位置?
解决方案
你只需要将样本量标签的y轴位置固定为0即可,以下是两种实现方式:
方式一:修改自定义函数
直接把原代码中give.n函数返回的y值从mean(x)改为0,就能让文本定位到y=0处:
give.n <- function(x){ return(c(y = 0, label = length(x))) } ggplot(diamonds, aes(cut, price)) + geom_boxplot() + stat_summary(fun.data = give.n, geom = "text", vjust = 0.5)
vjust = 0.5用于调整文本的垂直偏移,避免和坐标轴标签重叠,你可以根据显示效果调整这个参数值。
方式二:简化写法(无需自定义函数)
直接在stat_summary中指定y轴位置,并通过fun = length直接计算样本量,代码更简洁:
ggplot(diamonds, aes(cut, price)) + geom_boxplot() + stat_summary( fun = length, geom = "text", aes(y = 0), vjust = 0.5 )
内容的提问来源于stack exchange,提问作者Forklift17
相关产品推荐
相关产品推荐

