【问题标题】:r add lines or segments to barchartr 向条形图添加线条或线段
【发布时间】:2016-12-14 08:03:30
【问题描述】:

我有一个只有一个条形的堆叠水平条形图。我想标记不同的段,每个标签都是相应段的开始。但是,由于有些线段很窄,所以标签需要处于不同的层次,并且应该通过直线与条形连接,如本例所示。

我可以使用barplot() 创建条形图,使用mtext(..., side=3, line=1,...) 创建标签,但无法获取线条。 segments() 似乎不起作用,因为 y 方向的坐标不能正常工作(或者我还没有弄清楚条形图的坐标系)。

是否有人提示如何使用基本图形创建这些线条?

【问题讨论】:

    标签: r plot bar-chart


    【解决方案1】:
    ## bogus data
    dat <- c(1,3,1,2)
    nb <- length(dat)
    ## basic barplot
    barplot( cbind( dat ), col=1:nb, horiz=TRUE, ylim=c(0,0.7), wid=0.2)
    
    ## location of the vertical segments
    xdat <- c(0, cumsum(dat[-nb]))
    
    ## create vector of jagged heights for label placement/vertical segment ends
    h1 <- 0.36
    h2 <- 0.4
    heights <- c(h2,h1,h2,h1)
    segments(x0=xdat, x1=xdat, y0=rep(0.1,nb), y1=heights)
    text(x=xdat+0.1, y=heights, paste("Segment",1:nb), adj=0)
    

    【讨论】: