2012-11-05 70 views
2

我在有R上轴凹凸间距为R

上。这里x轴绘制不均匀刻度情节的一个问题是一个例子:

plot(1:100,1:100) 

会给x轴的相等蜱空间。

但是,我想要显示前半部分空间显示1到10,左半部分空间显示10到100,因此10到100个密度更高的点以及1:10中的点更容易看到。如何与R做?

像这样:

enter image description here

回答

2

这不是一个简单的一次性任务来完成。您实际上需要转换为缩放数据并提供自定义刻度标记轴。任何你没有考虑过简单地记录X轴的原因? (提供选项plot(x, y, log='x')将做到这一点)。

我认为你所描述是这样的:

xnew <- ifelse(x<10, x, x/10) 
plot(xnew, y, axes=FALSE, xlab='x') 
axis(1, at=c(0, 10, 20), labels=c(0, 10, 100)) 
axis(2) 
box() 
+1

我看到类似的图类似,从一个细胞纸(Zuqin聂,2012)。图2B显示了不均匀的x轴。其实我不赞成以他们的方式画画。我会尝试登录。 – shao

2

你可以log x轴:

x<-1:100 
y<-1:100 
plot(log(x,base=10),y,axes=F) 
axis(2) 
axis(1,at=0:2,labels=10^(0:2)) 

enter image description here

2

对于一个数轴,使用:

plot(x,y,log="x") ## specifies which axis to put on log scale 

为了确定有多少 “刻度线” 使用,检查

par()$lab 

默认为5,5,7。为了把更多的X轴标签,做

par(lab=c(10,5,7)) 

而对于Y:

par(lab=c(5,10,7))