2016-11-09 93 views
0

我想在水平网格线的同一标绘区域绘制两个图。网格线的每一边应该给出一个图或另一个图的值。不应该有Y轴。R:两条轴线和网格线

grid()函数允许我使用ny=参数简单设置分箱数。我如何获得网格线的相应标签?通常,我会使用axis(..., lwd=0)来获取标签。但是,该功能要求标签位置为at=c(),并且不包含ny=参数。有没有办法根据垃圾箱数量自动设置位置?


根据下面的Miff的提示,这应该可以解决问题。

plot(1:10, axes=FALSE, ylim=c(0,10), ylab="") 
par(yaxp=c(0, 10, 5)) 
axis(2, lwd=0, col.axis="gray") 
par(new=TRUE) 
plot(60:50, axes=FALSE, ylim=c(50,60), ylab="") 
par(yaxp=c(50, 60, 5)) 
axis(4, lwd=0, col.axis="gray") 
grid(NA, NULL) 

回答

1

grid()获取其位置从axTicks()网格线,又使用人数从par("yaxp")。如果修改此参数(而不是将其显式传递给网格),则结果将应用于绘制的网格和坐标轴。例如:

plot(1:10, axes=FALSE) 
axis(2) #Default 4 sections between ticks 
par(yaxp=c(par("yaxp")[1:2], 7)) #Lets have seven instead 
axis(4) 
grid() #Grid now matches with right rather than left 

显然类似于x轴的作品。

+0

所以我的问题可以解决如下: – bumblebee