0

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

例如这样的:

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

4

2 回答 2

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)

在此处输入图像描述

于 2012-11-20T16:09:23.210 回答
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")

在此处输入图像描述

于 2012-11-20T16:06:53.953 回答