R需要在y轴上打断

R Need to put a break in y axis

我需要在 25,000 到 200,000 之间的 y 轴上打个断点。这是代码,我不明白为什么它没有给我需要的 y 轴。我需要第一部分以 5,000 为步长从 0 到 25,000,第二部分以 500K 为步长从 200,000 到 200 万。

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

您可以针对此问题创建一个work-around。我假设您希望情节更具可读性。您可以减小非常大的值的大小,使它们与较小的值更具可比性,同时保留原始轴标签。也就是说,

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