barplot函数返回的中点实际上并不与条形中点对齐

时间:2014-03-12 02:46:45

标签: r

我一直注意到如果我保存一个条形图对象:

y <- seq(10,50,10)
mp <- barplot(y)

并叠加一行

par(new=T)
plot(mp, y, type="o")

然后新图上的点不与条形图中的条形中间对齐。

但是,如果我不使用par(new = T)而是这样做:

mp <- barplot(y)
lines(mp, y)
points(mp,y)

然后这些点与条形图的中间对齐。

我想在第二个轴上绘制新的线图,所以我需要做一些像par(new = T)这样的事情。有谁知道如何正确排列中点?

谢谢

1 个答案:

答案 0 :(得分:2)

经过简单的调查,我意识到问题是两个地块的x轴不匹配。查看代码&amp;下面的图表可以看到问题。

y <- seq(10, 50, 10)
mp <- barplot(y)
axis(1)  #barplot will use left and bottom axes

par(new = T)

plot(mp, y * 4, type = "o", axes = F)
axis(4)
axis(3)  # this plot will use top and right axes

enter image description here

因此,要解决此问题,您需要为两个图指定公共xlim参数。

mp <- barplot(y, xlim = c(0, length(y) + 1))
par(new = T)
plot(mp,y*4,type='o', axes = F,ylab="", xlim=c(0,length(y)+1) ) + axis(4) + mtext("y*4",4)

enter image description here