【问题标题】:R ggplot reverse axes and control direction of barsR ggplot反向轴和条形控制方向
【发布时间】:2018-04-18 03:23:36
【问题描述】:

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

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 处)?谢谢。

【问题讨论】:

  • 只使用scale_y_reverse(limits=c(100,-100)),省略scale_y_continuous()
  • 感谢您的建议,您知道如何让条形图与第一个示例图(图像)中的方向相同吗?使用您的代码将使其看起来像底部图像。

标签: r ggplot2 bar-chart


【解决方案1】:

你可以用类似的东西得到最上面的情节

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()

【讨论】:

    猜你喜欢
    • 2018-02-08
    • 2021-03-06
    • 2018-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多