我试图模仿两种类型的图(提供两个图像),其中负值在右侧,正值在左侧。我有以下示例代码:
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)?感谢。
答案 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))
你可以用
获得底部情节ggplot(tdf,aes(nm,prcnt,fill=catg))+
geom_col()+
scale_y_reverse(limits=c(100,-100))+
coord_flip()