(最初の方の例はcurve関数を使ってますが、plot関数でも同様の方法でいけます)
もちろん、特に指定しなくても、目盛りと目盛りのラベル(例えば、x軸の -4, -2, 0, 2, 4)は書いてくれます↓
指定しなくても目盛りは表示される |
curve(dnorm, xlim=c(-4,4))
上記では、2刻みになっていますが、例えば、1刻みにしたいなあという場合↓
目盛りが1刻みになるように指定 |
curve(dnorm, xlim=c(-4, 4), xaxp=c(-4, 4, 8))
さらに刻みを細かくして0.5にしてみましたが、目盛りのラベルは適宜間引かれてしまうようです↓(作図領域を横に伸ばせばラベルが表示されるようになります)
目盛りが0.5刻みになるように指定 |
# すべての目盛りに数値ラベルが書かれるわけではない
curve(dnorm, xlim=c(-4, 4), xaxp=c(-4, 4, 16))
いくつに分割するかちゃんと考えないと、↓こんなことになることも・・・
割り切れないところに目盛りがきてしまう例 |
curve(dnorm, xlim=c(-4, 4), xaxp=c(-4, 4, 9))
次は違うやり方。
最初は軸の目盛りを書かないようにしておいて、あとから、axis関数をつかって目盛りを書き足すという方法です↓
axis関数で目盛りを後から追記したもの(見た目おんなじだけど・・・) |
axis(side=1, at=-4:4) # atに目盛りをベクトルで指定する
side=1というのがx軸の意味で、y軸に追記したい場合はside=2と指定すればOK。
xaxpでの指定は等間隔でしたが、axisのatでの指定は目盛り位置を列挙するような形ですので、任意の間隔で目盛りをつけることが可能です。
こんないいかげんな刻み幅も↓
こんな目盛りのグラフはイヤだ |
curve(dnorm, xlim=c(-4, 4), xaxt="n")
axis(side=1, at=c(-4, -2, 1, 2.5, 3.2))
上記はcurve関数の例でしたが、plot関数でも同様です↓
関数を定義したあと、plotで描いたもの(xaxp使用) |
plot(f, xlim=c(-4, 4), xaxp=c(-4, 4, 8))
関数を定義したあと、plotで描いたもの(axis使用) |
plot(f, xlim=c(-4, 4), xaxt="n")
axis(side=1, at=-4:4)
デフォルトの目盛り刻みで問題ない場合がほとんどでしょうから、滅多に使わない機能かなあと思います。滅多に使わないがゆえに、やり方を忘れてしまうというジレンマ。
非常にわかりやすい記述でありがたいです。本当にこんな情報を探していました。ありがとうございました。
返信削除