R ggplot反转轴和控制棒的方向

时间:2018-04-17 16:17:18

标签: r ggplot2 bar-chart

我试图模仿两种类型的图(提供两个图像),其中负值在右侧,正值在左侧。我有以下示例代码:

enter image description here

tdf<-data.frame(prcnt=c(-50,25,-80,5,10,-40),nm=c('AB','BC','CD','DE','EF','FG'),catg=c(rep('catA',2),rep('catB',2),rep('catC',2)))
ggplot(tdf,aes(nm,prcnt,fill=catg))+geom_col()+scale_y_continuous(limits=c(-100,100))+coord_flip()+scale_y_reverse()

我怎样才能让它像这样以中心为中心(0)?感谢。

enter image description here

1 个答案:

答案 0 :(得分:2)

您可以使用类似

的内容获得最佳情节
ggplot(tdf,aes(ymin=as.numeric(nm)-.45,ymax=as.numeric(nm)+.45,
               xmin=100, xmax=prcnt,fill=catg))+
  geom_rect() + 
  scale_y_continuous(breaks=as.numeric(tdf$nm),
                    labels=levels(tdf$nm))+
  scale_x_reverse(limits=c(100, -100))

enter image description here

你可以用

获得底部情节
ggplot(tdf,aes(nm,prcnt,fill=catg))+
  geom_col()+
  scale_y_reverse(limits=c(100,-100))+
  coord_flip()

enter image description here