在轴上省略间隔/分割比例?低粒度和高粒度的细粒度?

时间:2012-11-20 15:50:27

标签: r intervals

假设我有两个数据集,我想在一个图中绘制。

例如:

low <- runif(10,min=10, max=50)
high <- runif(10,min=10000, max=11000)
plot(
     high,
     type="l",
     ylim=c(0,11000)
)
lines(low, type="l")

我不希望y轴显示这些样本之间的所有值,因为它的方式,low数据将显示为扁平线,即使存在变化。

因此,轴应该在10-50之间具有更细粒度的刻度,并且应该省略50到10000之间的值。然后,间隔[10000-11000]也应该具有更细粒度的刻度。因此,low样本的变体也是可见的。

有没有办法实现这种行为?

如果发现这个,bt

2 个答案:

答案 0 :(得分:1)

这可能有用......?

set.seed(001)    
low <- runif(10,min=10, max=50)

high <- runif(10,min=10000, max=11000)
plot(
  high,
  type="l",
  ylim=c(0,11000)
)
lines(low, type="l")


plot(high,            
     type="l",              
     col="red",              
     bty='l',                
     ylab='', xlab='',      
     las=1,                 
     cex.axis=.75)     

par(new=TRUE)                

plot(low,
     type="l", 
     col="blue", 
     bty='n',                
     xaxt="n",               
     yaxt="n",               
     xlab="", ylab="", 
     cex.axis=.75)

axis(4, las=1, cex.axis=.75) 

legend('topright', c('high', 'low'), col=c('red', 'blue'), lty=1, bty='n', cex=.75)

enter image description here

答案 1 :(得分:0)

除了良好的图形练习的问题,这可以使用 plotrix 包完成:

low <- runif(10,min=10, max=50)
high <- runif(10,min=10000, max=11000)
y <- c(low,high)
x <- rep(1:10,times = 2)

library(plotrix)
yl <- c(pretty(5:70,2),pretty(9900:11000,5))
gap.plot(x,y,
        gap = c(70,9900),
        gap.axis = "y",
        ytics = yl,
        type = "l")

enter image description here