2011-11-12 20 views
2

私はプロットの設定に関して非常に単純な問題があります。プロットのy軸の設定

私は、特別な方法でy軸上にティック(そしてこれらのティックでラベル)を持っていたいと思います。例えば、3から9まで、1単位。

これはコードです:

windows()   
par(yaxp = c(3, 9, 7)) 
plot(1:10) 

しかし、それは動作しません。なぜ私は本当に理解できないのですか? また、tck、tcl、yaxs、yaxt、yaxp、関数axis()などのpar()からの引数で遊んでみました。これは、次のコードに、とりわけ例えば鉛:

windows() 
par(yaxt = "n", yaxp = c(3, 9, 7)) 
plot(1:10) 

または

windows() 
par(yaxt = "n") 
plot(1:10) 
axis(2, at = c(3, 4, 5)) 

は、残念ながら、私は 任意のアイデア...すべての場合には失敗した??

答えて

5

plot(1:10, yaxp = c(3, 9, 6)) 

enter image description here

6

私は通常、plot()の呼び出しでaxes = FALSEと設定し、次にaxis()を使用して個々の軸を描画します。

# no call to par() needed 
plot(c(1:10), axes = FALSE) 
axis(1)      # x-Axis 
ticks <- seq(3, 9, 1)  # sequence for ticks and labels 
axis(2, at = ticks,   # y-Axis 
    labels = ticks) 
box()      # and a box around the plot 
7

は、あなたの当面の問題にいくつかの良い解決策を受け取ったが、私は答えるだろうと思って、「なぜ?」部分。この場合のRの文書は正しいが、おそらく透明ではないかもしれない。

あなたがxaxpを説明?parのセクションを調べると、あなたは見つけることができます:

をこのパラメータには、ユーザー座標系は、新しいページを開始することによって、またはプロットを呼び出すことにより、 例えば、設定されているときにリセットされます.windowまたはsetting par( "usr"):nはpar( "lab")から取得されます。 yaxpの下

、同じ警告が与えられていないが、代わりにそれはxaxpを参照してください "シンプル言います。そこ?parusrパラメータには同様の警告はありませんが、我々は?plot.windowを見れば、我々が見るので、同じことは、おそらくケースです:

コールの副作用は、USRを設定することです、xaxpはそしてだから何が起こっていることはplotへの呼び出しは、最終的にplot.windowを呼び出すにつながることがある

をyaxpの副作用は、実際にusrxaxpyaxpため設定をリセットすることです。もちろん、それらの引数をplotのような上位レベルの関数に直接渡しておかないと、それらの引数をplot.windowという行に渡します。

は個人的に、私はこれが唯一のpar()を使用してではなく、高レベルのプロット関数に渡すことで設定するできるパラメータのリストと一緒に?parの詳細セクションに言及に値すると思います。

+0

こんにちはジョラン、それは本当にinteressting情報です!しかし、あなたが見つけたものを正しく理解していれば、polt関数からリセットされるので、引数usr、xaxp、yaxpのいずれかをparで使うのは理にかなっています。または、それが意味を成すケースを考えることができますか? –

関連する問題