在条形图中添加线图 - 不在条形图中心的线点

时间:2017-01-14 15:23:13

标签: r plot bar-chart

我正在尝试使用以下代码向barplot添加简单的线条图:

mp <- barplot(monatsdurchschnitt_niederschlag, ylim = c(0, 90));
mp
#      [,1]
# [1,]  0.7
# [2,]  1.9
# [3,]  3.1
# [4,]  4.3
# [5,]  5.5
# [6,]  6.7
# [7,]  7.9
# [8,]  9.1
# [9,] 10.3
#[10,] 11.5
#[11,] 12.7
#[12,] 13.9

axis(1, at=mp[,1], labels = xlabels_monate)
text(mp[,1], monatsdurchschnitt_niederschlag,
     labels = monatsdurchschnitt_niederschlag_rounded,
     pos = 3, cex = 1)

par(new=TRUE)
plot(mp[,1], monatsdurchschnitt, col = "red", axes=FALSE, type = "o",
     ylim = c(0,40), xlim = c(0,14), ann = FALSE)
axis(4, at=seq(0,40,10), ylim = c(0,40), col = "red", col.axis = "red")

enter image description here

但不知何故,第二行图的点不在条形图的条形图中心,正如您可以清楚地看到的那样。我认为这可以通过使用mp[,1]作为线图的x坐标来解决,但显然这没有用。有谁知道解决方案?

另一个问题是,右侧附加线图的轴线不会与左侧轴线的高度相同。有办法改变吗?

1 个答案:

答案 0 :(得分:1)

par(new = TRUE)是问题的根源。您是否可以使用lines代替plot来绘制红线?

如果没有,请确保两个xlim之间的plot相同。如何在xlim = extendrange(mp, f = 0.1)中明确设置plot?目前您没有在xlim中指定barplot,而是在第二个xlim = c(0, 14)中设置plotxlim的差异会导致错位问题。