gpt4 book ai didi

r - 为每个 geomp_boxplot 绘制单独的 geom_hline

转载 作者:行者123 更新时间:2023-12-01 23:07:59 25 4
gpt4 key购买 nike

我有一个箱线图,想为每个箱线图单独添加带有 geom_hline 的简单水平线。

我尝试过 R 中的箱线图示例。问题是:

  • 这些线条跨越整个图,而不仅仅是箱线图。
  • 它们位于箱线图后面..;-)

感谢您提前提供的任何帮助。

    ### ADDING Lines
somelines <- data.frame(value=c(0.2,0.3,0.4,0.6,0.7),boxplot.nr=c(1,2,3,4,5))

abc <- adply(matrix(rnorm(100), ncol = 5), 2, quantile, c(0, .25, .5, .75, 1))
b <- ggplot(abc, aes(x = X1, ymin = `0%`, lower = `25%`, middle = `50%`, upper = `75%`, ymax = `100%`)) +
geom_hline(aes(yintercept= value),somelines)
b + geom_boxplot(stat = "identity")
b + geom_boxplot(stat = "identity") + coord_flip()
b + geom_boxplot(aes(fill = X1), stat = "identity")

my try

最佳答案

您可以使用geom_segment()来添加这些行。使用 boxplot.nr-0.5 作为行的开头,使用 boxplot.nr+0.5 作为行的结尾,使用 value 作为 y 和 Yend。还要在 geom_segment() 内添加 inherit.aes=FALSE 以确保 geom_segment() 不会查找变量 X1 用于填充箱线图。

ggplot(abc, aes(x = X1, ymin = `0%`, lower = `25%`, middle = `50%`, 
upper = `75%`, ymax = `100%`)) +
geom_boxplot(aes(fill = X1), stat = "identity")+
geom_segment(data=somelines,aes(x=boxplot.nr-0.5,xend=boxplot.nr+0.5,
y=value,yend=value),inherit.aes=FALSE,color="orange",size=1.5)

第二次调用 geom_boxplot() 也可以获得相同的结果 - 由于 somelines 对象的每个级别中只有一个值,因此箱线图将显示为线条。

ggplot(abc, aes(x = X1, ymin = `0%`, lower = `25%`, middle = `50%`, 
upper = `75%`, ymax = `100%`)) +
geom_boxplot(aes(fill = X1), stat = "identity")+
geom_boxplot(data=somelines,aes(factor(boxplot.nr),value),
inherit.aes=FALSE,color="orange",size=1.5)

enter image description here

关于r - 为每个 geomp_boxplot 绘制单独的 geom_hline,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21291114/

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