No.14396 boxplotの目盛を変えたい  【ぼっくす】 2011/03/03(Thu) 15:50

Rでboxplotを描き,そのグラフのy軸の目盛を変更したいのですが,できません...
初歩的な質問で申し訳ありませんが,ご教授いただければありがたいです.
よろしくお願いいたします.

No.14397 Re: boxplotの目盛を変えたい  【青木繁伸】 2011/03/03(Thu) 16:15

どのように変えたいというのでしょうか?
下のプログラムの2番目の boxplot と次の axis を組み合わせれば,任意の位置に目盛りを描くことはできます(最初の boxplot がデフォルトの位置に目盛りを描くのと比べてみてください)。
layout(matrix(1:2, 1))
boxplot(iris$Sepal.Length~iris$Species)
boxplot(iris$Sepal.Length~iris$Species, yaxt="n")
axis(2, at=5:8)
layout(1)


No.14398 Re: boxplotの目盛を変えたい  【ぼっくす】 2011/03/03(Thu) 16:20

青木先生,ご助言をいただきありがとうございます。

サイズのデータでboxplotを描いているのですが,複数のグラフで比較を行いたいため,y軸の上限値と下限値を統一できないか?と考えています。
比較対象が同じようなサイズ分布であればよいのですが,対象ごとに分布が大きく異なっているため,自動で目盛をふった場合に大きなずれが生じてしまい,困っていました。

boxplotの場合には目盛を任意にふることはできないのでしょうか?ご助言をいただければ幸いです。

No.14399 Re: boxplotの目盛を変えたい  【青木繁伸】 2011/03/03(Thu) 16:29

> y軸の上限値と下限値を統一できないか

そのような場合には ylim 引数を使います。
layout(matrix(1:4, 2, byrow=TRUE))
old <- par(mar=c(3,3,1,1), mgp=c(1.8, 0.6, 0))
boxplot(iris$Sepal.Length~iris$Species) # (1)
boxplot(iris$Petal.Length~iris$Species) # (2)
boxplot(iris$Sepal.Length~iris$Species, ylim=c(0, 8)) # (3)
boxplot(iris$Petal.Length~iris$Species, ylim=c(0, 8)) # (4)
par(old)
layout(1)
図の上の2つは(1), (2)で描かれたもので,y 軸の目盛りが異なる。
下の 2 つは(3), (4) で描かれたもので,ylim により,範囲を 0, 8 にしたものです。


No.14401 Re: boxplotの目盛を変えたい  【ぼっくす】 2011/03/03(Thu) 16:39

早速のご回答をありがとうございます。

自分でも,以前にヒストグラムを作成する時に使っていたxlimをylimにしてコマンドを入れていたのですが,その前に目盛間隔を指定するために,"breaks= "を入れてしまっていたためにうまく表示できなかったようです。

今回のグラフに,さらに目盛間隔を指定したい場合にはどのようにすべきなのでしょうか?
再度初歩的なご質問で申し訳ありませんが,ご助言いただければ幸いです。

No.14402 Re: boxplotの目盛を変えたい  【青木繁伸】 2011/03/03(Thu) 16:54

> さらに目盛間隔を指定したい場合にはどのようにすべきなのでしょうか

両方を組み合わせるのでしょうね。
つまり,yaxt="n" と axis と ylim

# あなたのプログラムを示してくれれば,どこをどう直すかはっきり指摘できるでしょう
# 上手に質問をしましょう

No.14403 Re: boxplotの目盛を変えたい  【ぼっくす】 2011/03/03(Thu) 17:02

言葉足らずですみません。
以下のようなコマンドを入力していました。

>boxplot(y~x, breaks=seq(10,50,5),ylim=c(5,55))

>つまり,yaxt="n" と axis と ylim

を使った場合では,どのように入力すればよろしいのでしょうか?

No.14404 Re: boxplotの目盛を変えたい  【青木繁伸】 2011/03/03(Thu) 17:10

breaks はなんの意味もないでしょう(そもそも boxplot の引数に breaks はない)
boxplot(y~x, ylim=c(5, 55), yaxt="n")
axis(2, at=1:5*10)
とすれば,y 軸の範囲が 5 〜 55 になり,10, 20, 30, 40, 50 の位置にティックマークと目盛数値が描かれるでしょう。
axis(2, at=seq(10, 50, by=5))
とすれば,10 から 50 まで 5 刻みにティックマークと目盛数値が描かれます。

# カンマの後には空白を

No.14405 Re: boxplotの目盛を変えたい  【ぼっくす】 2011/03/03(Thu) 17:17

青木先生,適切なご回答をいただきありがとうございます。
色々と他の引数と混同してしまったようです…。

不明な点は全て解決しました。
ありがとうございました。

● 「統計学関連なんでもあり」の過去ログ--- 044 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る