2016-08-08 3 views
3

막대가 하나만있는 가로 가로 막 대형 차트가 있습니다. 각 세그먼트가 시작되는 각 레이블로 다른 세그먼트에 레이블을 지정하려고합니다. 그러나 일부 세그먼트는 매우 좁기 때문에 레이블은 다른 레벨에 있어야하며이 예제에서와 같이 직선을 통해 막대와 연결되어야합니다.r 선 또는 세그먼트를 barchart에 추가하십시오.

example bar chart

나는 barplot()를 사용하여 막대 그래프와 mtext(..., side=3, line=1,...)를 사용하여 라벨을 만들 수 있지만 라인을 얻을 수 없습니다. segments()은 y 방향의 좌표가 제대로 작동하지 않기 때문에 (또는 아직 막대 차트의 좌표계를 찾지 못했기 때문에) 작동하지 않는 것 같습니다.

아무도 기본 그래픽을 사용하여이 줄을 만드는 방법에 대한 힌트가 있습니까?

답변

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) 
관련 문제