r - 对齐x轴图像和基本图

时间:2016-11-10 17:25:39

标签: r image plot

当我尝试通过x轴将图像图与xy图对齐时,x值之间存在小的不对齐。无法弄清楚如何摆脱它! 请注意底部图中的垂直线与顶部图中的x轴未对齐。

par(mfrow=c(2,1))
par(mar=c(0,5,5,5))
image(x=1:100,z=replicate(10, rnorm(100)))
par(mar=c(5,5,0,5))
par(xaxs="i")
plot(1:100,rnorm(100))
abline(v=1:100)
大师,帮忙!!谢谢!!

PS:无法弄清楚帖子“情节 - 时间 - 系列和图像在-r-so-that-x-axis-labels-up-up-perfect”,仍有问题!< / p>

2 个答案:

答案 0 :(得分:1)

问题是image将数据绘制为具有给定宽度的单元格网格。如果ximage的长度等于nrow(z),则它指定单元格的中点。在您的示例中,这为您提供了以1:100为中心的矩形,有效地导致x轴覆盖从0.5100.5的范围,这给出了观察到的不对齐。

为了匹配两个图中的范围,您需要相应地指定xlimplot。在下面的示例中,我使用n = 10来使事情变得更加明显。

par(mfrow=c(2,1))
par(mar=c(0,5,5,5))
image(x=1:n,z=replicate(10, rnorm(n)))
par(mar=c(5,5,0,5))
par(xaxs="i")
plot(1:n,rnorm(n), xlim=c(.5,n+.5))
abline(v=1:n)

enter image description here

答案 1 :(得分:0)

好的,所以这是我过去可能想到的事情之一,然后完全忘记了。 诀窍不仅是调用par(xaxs =“i”)而且还强制执行两个xlims!

par(mfrow=c(2,1))
par(mar=c(0,5,5,5))
image(x=1:100,z=replicate(10, rnorm(100)),xlim=c(0,100))
par(mar=c(5,5,0,5))
par(xaxs="i")
plot(1:100,rnorm(100),xlim=c(0,100))
abline(v=1:100)