gpt4 book ai didi

r - 使用ggplot2,我可以在轴中插入断点吗?

转载 作者:行者123 更新时间:2023-12-03 01:30:45 28 4
gpt4 key购买 nike

我想制作一个条形图,其中一个值比所有其他值大得多。有没有办法让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

enter image description here

有没有办法让我的轴从 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 能够很好处理的事情,因为损坏的轴通常被认为是有问题的。

其他策略通常被认为是解决此问题的更好方法。 Brian 提到了一些(分面,关注不同值集的两个图)。人们经常忽视的另一个选择,特别是对于条形图,是制作一个表格:

enter image description here

从实际值来看,500 并没有掩盖其他值的差异!由于某些原因,表格作为数据可视化技术并没有得到足够的尊重。您可能会反对,您的数据有很多很多类别,这在表中变得难以处理。如果是这样,您的条形图可能会有太多条形而不合理。

而且我并不是一直在争论 table 。但如果您要制作条形相对较少的条形图,那么它们绝对是需要考虑的因素。如果您要制作包含大量条形的条形图,那么您可能需要重新考虑这一点。

最后,plotrix 包中还有 axis.break 函数,它实现了断轴。但是,根据我收集的信息,您必须自己手动指定轴标签和位置。

关于r - 使用ggplot2,我可以在轴中插入断点吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7194688/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com