我使用plot()
在普通的散点图中绘制了数据。我已经在对数刻度上将x轴的范围定义为0到1000之间。到现在为止还挺好。但我有3个不同的数据集,其中一个数据集的间距为0,1,10,100,1000,而另外两个数据集则缺少“1”。我想要所有3个图包含“1”。
我尝试使用xaxt="n"
然后使用axis(1, at=c(0, 1, 10, 100, 1000))
。
然后将1绘制为接近0,因此在0和1之间没有对数缩放。我希望这不会太混乱。如何设置以对数刻度绘制0,1,10,100,1000 ALL,即所有这些值之间的间距相同?
我希望有人可以提供帮助!
答案 0 :(得分:0)
你需要做这样的事情:
#plot 1
# i don't know what your ylim should be but you want them to be
# minimum across y1, y2, y3 and maximum across y1, y2, y3
plot(x1,y1,axes=F,xlim=c(0,1000),ylim=c(?,?),xlog=TRUE, col="red")
par(new=T)
#plot 2
plot(x2,y2,axes=F,xlim=c(0,1000),ylim=c(?,?),xlog=TRUE, col="blue")
par(new=T)
#plot 3
plot(x3,y3,axes=F,xlim=c(0,1000),ylim=c(?,?),xlog=TRUE, col="yellow")
#now put back in the axes
#y axis first
axis(2)
#x axis
axis(1,at=c(0, 1, 10, 100, 1000),label=c(0, 1, 10, 100, 1000))
box(bty="l")
这样做是使三个图表具有相同的x和y范围;具体来说,所有图形的x范围都是相同的,0到1000.两个轴都应该跨越您的数据。如果他们不这样做,你只需要扩展x或y。将ylim=c(?,?)
中的问号替换为覆盖y值范围的某些数值。
绘制数据后,添加axis
语句以放入刻度和标签。