繁体   English   中英

为每个geomp_boxplot绘制单个geom_hline

[英]plot individual geom_hline for each geomp_boxplot

我有一个箱形图,并希望为每个箱图分别添加简单的水平线和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")

我的尝试

您可以使用geom_segment()添加这些行。 使用boxplot.nr-0.5表示行的开头,使用boxplot.nr-0.5 boxplot.nr+0.5作为行尾和y和yend的value 还要在geom_segment()添加inherit.aes=FALSE以确保geom_segment()不会查找用于填充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对象的每个级别只有一个值,然后boxplots将显示为行。

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)

在此输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM