2016-10-21 3 views
0

私は気候図をプロットしようとしていて、次の問題に遭遇しました: 降水量のためにバープロット(...)を使用した後、私は温度の別のプロットを重ねました。気候図では、2つのy軸(mm、℃)がゼロに整列し、降水量/温度比は2:1である必要があります(20mm降水量は10℃に相当)。バープロットとベースプロットのY軸位置が一致しない

問題点:barplot(...)はプロットのボックスに軸を描画し、plot(...)はボックスと軸のマージンの間にある程度のスペースを残します。

ここでは簡単な例を示します。あなたは0値が整列しないことがわかり、グリッド線から:

barplot(0:10) 
    grid(col=1) 
par(new=TRUE) 
plot(0:10, xlim=c(-2,14), axes=FALSE) 
    axis(4,at=c(0:10), labels=c(0:10)) 

enter image description here

どのように私は2つの軸の右位置とスケーリングを得ることができますか?

+0

複雑なプロット図面では一般にggplot2の使用をお勧めします。しかし、これはプロット時のボックス設定に起因する可能性があります – Llopis

+0

私はこのような単純なグラフにggplot2を使用したくないです。私はまた、par(...)引数 "yaxs"を見つけましたが、Rのために "スタイル"だけが定義されています。 – MarioT

答えて

0

par(new = TRUE)を使用しないでください:

barplot(0:10) 
grid(col=1) 
lines(0:10, type = "p") 
axis(4,at = c(0:10), labels = seq(0,20,2)) 

機能lines()はここに正しいものです。ポイントをプロットするには、引数type = pが必要です。 温度のy値を調整する必要がありますが、今度は2番目のy軸が正しい方法です。

+0

2番目のy軸に対して別のスケーリングが必要なので、これは機能しません(説明を参照) – MarioT

+0

ああ、ok 、あなたは軸ラベルを変更しました。これは私が温度を2倍にしなければならないことを意味します...それはうまくいくはずです – MarioT

関連する問題