我有一个堆叠的水平条形图,只有一个条形图。我想标记不同的段,每个标签都在相应的段开始处。但是,由于某些线段非常窄,标签需要处于不同的水平,并且应该通过直线与条形连接,如本例所示。
我可以使用barplot()
创建条形图,使用mtext(..., side=3, line=1,...)
创建标签,但无法获取线条。 segments()
似乎不起作用,因为y方向的坐标没有正确功能(或者我还没有想出条形图的坐标系)。
是否有人提示如何使用基本图形创建这些线?
答案 0 :(得分:5)
## 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)