我有一个只有轴的小子图:
par(mar=c(0.1, 0.1, 1.0, 37))
plot(NULL, axes=FALSE, xlim=c(0,0), ylim=ylim.axis_right, type="n", ann=FALSE)
axis(4, at=c(ylim.axis_right[1], ylim.axis_right[1]/2, 0, ylim.axis_right[2]/2, ylim.axis_right[2]), labels=FALSE, lwd=6, col="#000000")
box()
其中ylim.axis_right是2个矢量,其形式为(-x,x)。
我的问题是,我为虚拟绘图和大多数外部标记的轴都提供了相同的ylim,并且我希望实际轴会拉伸到框的极限。为什么没有发生,我该如何纠正?
答案 0 :(得分:1)
问题是默认情况下,R将使图的大小增加4%。您可以使用yaxs =“ I”禁止显示。帮助页面?par
中对此进行了说明。
xaxs
X轴使用的轴间隔计算方式。可能的值为“ r”,“ i”,“ e”,“ s”,“ d”。风格一般 由数据范围或xlim(如果有)控制。
样式“ r”(常规)首先在两端将数据范围扩展4%,然后 然后找到带有适合扩展范围的漂亮标签的轴。
样式“ i”(内部)仅找到带有漂亮标签的轴 符合原始数据范围。yaxs
y轴使用的轴间隔计算方式。请参见上面的xax。
因此,您可以通过指定yaxs="i"
par(mar=c(0.1, 0.1, 1.0, 29))
ylim.axis_right = c(-1,1)
plot(NULL, axes=FALSE, xlim=c(0,1), ylim=ylim.axis_right, type="n", ann=FALSE, yaxs="i")
axis(4, at=c(ylim.axis_right[1], ylim.axis_right[1]/2, 0, ylim.axis_right[2]/2,
ylim.axis_right[2]), labels=FALSE, lwd=6, col="#000000")
box()