6
test <- data.frame(
    y=seq(18,41,1),
    x=24:1
)

ggplot(test, aes(y=y, x=x)) + geom_bar(stat="identity", aes(width=1)) + 
    opts( axis.text.x = theme_blank(), axis.ticks.x = theme_blank()) + 
    scale_x_continuous(breaks=NULL) + 
    coord_cartesian(ylim = c(17, 42))

在此处输入图像描述

就旋转和翻转而言,我希望该图中的 y 轴位于顶部,而 x 轴位于右侧。所以条形图从图的右侧“出来”,顶部最长/最高,底部最短。如果它顺时针旋转 90 度,然后翻转一条垂直线即可实现。

coord_flip() 和 scale_y_reverse() 以某种方式走上正确的道路。

编辑:

我想这非常接近,只需要将 y 轴移到图的顶部。

ggplot(test, aes(y=y, x=x)) + geom_bar(stat="identity", aes(width=1)) + 
    opts(axis.text.y = theme_blank(), axis.ticks.y = theme_blank()) + 
    scale_x_continuous(breaks=NULL) + scale_y_reverse() + coord_flip()  + scale_x_reverse()
4

1 回答 1

12

不完全是你描述的,但也许足够接近?

ggplot(test, aes(y=y, x=x)) + geom_bar(stat="identity", aes(width=1)) +
  coord_flip() +
  xlim(24, 1) +
  ylim(42, 0)

诀窍是让xlimandylim参数以相反的顺序排列。您的轴位置仍然在底部和左侧......

在此处输入图像描述

于 2012-07-13T08:44:52.540 回答