gpt4 book ai didi

在 ggplot boxplot 中重新定位 stat_summary 计数

转载 作者:行者123 更新时间:2023-12-04 11:33:16 25 4
gpt4 key购买 nike

df2<-data.frame(id=c("a","f","f","b","b","c","c","c","d","d","",""),
var=c(12,20,15,18,10,30,5,8,5,5,3,5))

give.n <- function(x){
return(c(y = mean(x), label = length(x)))
}
ggplot(data=subset(df2, id != ""), aes(x = reorder(id, -var), y = var)) +
geom_boxplot()+
stat_summary(fun.data = give.n, geom = "text",
position = position_jitter(height=1, width = 0))+
theme(axis.text.x = element_text(angle = 90, hjust = 1, size=11, vjust = -.005))+
ggtitle("Title")+
xlab("")+
ylab("value")

我有上面的图,但是我想将计数定位在箱线图中的中线上方,以便它们更明显。以这种方式使用 position_jitter 并不总能防止计数与中间条重叠。有什么建议?
*编辑以提供df2

最佳答案

您需要在返回的 y = 中定义调整值(value)。例如,让它返回中位数 + 0.1。您必须为您的数据手动调整 0.1。

give.n <- function(x){
return(c(y = median(x) + 0.1, label = length(x)))
}

ggplot(iris, aes(Species, Sepal.Width)) +
geom_boxplot() +
stat_summary(fun.data = give.n, geom = "text")

或者,如果您希望它正好位于中间和上铰链之间的中心,您可以像这样计算该位置:
give.n <- function(x){
return(c(y = mean(fivenum(x)[3:4]), label = length(x)))
}

enter image description here

关于在 ggplot boxplot 中重新定位 stat_summary 计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46179181/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com