【问题标题】:R Need to put a break in y axisR 需要在 y 轴上打断
【发布时间】:2018-03-23 06:22:35
【问题描述】:

我需要在 25,000 到 200,000 之间在 y 轴上设置一个间隔。这是代码,我不知道为什么它没有给我需要的 y 轴。我需要第一部分从 0 到 25,000,步长为 5,000,第二部分从 200,000 到 200,000,步长为 500K。

x <- c(1000000, 5000000, 10000000, 15000000, 20000000, 25000000, 
       30000000, 35000000, 40000000, 45000000, 50000000, 55000000,
       60000000, 65000000, 70000000, 75000000, 80000000, 85000000,
       90000000, 95000000, 100000000)

y <- c(3305.8, 4175.4, 4175.4, 4201.7, 4201.7, 23529.4, 23529.4, 23529.4, 23529.4,
       23529.4, 23529.4, 23529.4, 23529.4, 23529.4, 23529.4, 23529.4, 23529.4,
       285714.3, 2000000.0, 2000000.0, 2000000)

library(plotrix)
gap.plot(x, y, gap = c(25000, 200000), gap.axis = "y", ylim = c(0, 2000000),
             ytics = c(seq(0, 25000, by = 5000), seq(200000, 2000000, by = 500000)))
        axis.break(axis = 2, breakpos = 25000, style = "slash")

【问题讨论】:

  • 当您的最大值为 200 万时,隐式缩放将不允许 25,000 非常高。你应该更好地解释你的期望。 axis.break 或 gap.plot 似乎不允许在不同高度上使用不同的比例。
  • 你真的不应该在一个情节上放置不同的比例。一个地块上的数据应该具有可比性。要么将它们分开,要么使用一个比例。

标签: r plotrix


【解决方案1】:

您可以为此问题创建一些解决方法。我假设您希望情节更具可读性。您可以减少非常大的值的大小,使它们与较小的值更具可比性,同时保留原始轴标签。也就是说,

y2 <- ifelse(y>25000, y/100 + 25000, y)
gap.plot(x,y2,gap=c(25000,25000), gap.axis="y",ylim=c(0,2000000/100 + 25000),
         ytics=c(seq(0,25000,by=5000),seq(27000,45000,by=5000)),
         yticlab=c(seq(0,25000,by=5000),seq(200000,2000000,by=500000)))
axis.break(axis=2,breakpos=25000,style="slash")

【讨论】:

  • 好多了!谢谢。
猜你喜欢
  • 2012-05-17
  • 2015-07-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-02
  • 2019-08-12
相关资源
最近更新 更多