2017-01-14 9 views
1

に、私はこのコードを使用してbarplotにシンプルなラインプロットを追加しようとしていません: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

しかし、どういうわけかあなたがはっきりとわかるように、2行目のプロットの点は、棒グラフの棒の中央にはありません。私はそれがラインプロットのx座標としてmp[,1]を使用することによって解決されると思ったが、明らかにこれはうまくいかなかった。誰かがその解決策を知っていますか?

もう1つの問題は、右側の追加線グラフの軸が、左側の軸と同じ高さで始まらないことです。それを変える方法はありますか?

答えて

1

par(new = TRUE)が問題の原因です。赤い線を描くのにplotの代わりにlinesを使用できませんか?

の間に同じxlimがあることを確認してください。どのように明示的にxlim = extendrange(mp, f = 0.1)を両方ともplotに設定するのはどうですか?今はbarplotxlimを指定していませんが、xlim = c(0, 14)を第2のplotに設定してください。 xlimの違いにより、位置ずれの問題が発生します。

+0

バープロット用のxlimを実際に追加しました。ありがとう!私は 'line'を使いませんでした。なぜなら、左側の元の縮尺にスケールされていて、それが表示されたイメージにあるように少し大きくしたいからです。 'lines'を使うときに"高級化 "する方法はありますか?このようにして、私は正しいスケールの変位に対処する必要はありません... – Concord

関連する問題