【发布时间】:2011-11-03 21:55:17
【问题描述】:
我想制作一个条形图,其中一个值远大于所有其他值。有没有办法让y轴不连续?我的数据如下:
df <- data.frame(a = c(1,2,3,500), b = c('a1', 'a2','a3', 'a4'))
p <- ggplot(data = df, aes(x = b, y = a)) + geom_bar()
p <- p + opts(axis.text.x=theme_text(angle= 90, hjust=1)) + coord_flip()
p
有没有办法让我的轴从 1 到 10,然后从 490 到 500?我想不出任何其他方式来绘制数据(除了转换它,我不想这样做)
[编辑 2019-05-06]:
8 年后,需要修改上述代码以与 ggplot2 的 3.1.1 版一起使用才能创建相同的图表:
library(ggplot2)
ggplot(df) +
aes(x = b, y = a) +
geom_col() +
coord_flip()
【问题讨论】:
-
我不认为你可以在 ggplot2 中引入中断。另一种方法是使用
log比例尺,这将使图表更易于阅读。 -
我意识到它会使在对数刻度上更容易阅读,但我不想以这种方式显示信息,因为小值之间存在显着差异,当他们被改变了。
-
facet_wrap()和scales = "free_x"的组合怎么样 -
也可以通过自定义转换来解决这个问题......我有时间会写一个答案