No.14228 Stacked histogram  【T.W.】 2011/01/26(Wed) 16:01

いつもRのソースプログラムを参考にさせていただいています.ありがとうございます.
生物統計の勉強をしていますが,コンピュータについてはてんで素人です.

さて,タイトルの通り「積み上げヒストグラム」を描きたいのですが,こちらのサイトを見たところ横並びのヒストグラム(http://aoki2.si.gunma-u.ac.jp/R/hist2.html)しか置いていないようです.

描き方を教えていただけませんか?

統計学というよりプログラミングの話になりますので,こちらに書くのも申し訳ないのですが…よろしくお願いします.

No.14231 Re: Stacked histogram  【青木繁伸】 2011/01/26(Wed) 17:28

自分でプログラムを描くのもお勧めです。
出来合いの barplot 関数を使うと以下のように簡単にできます。
もう少しお化粧をすれば,十分使えるでしょう。描画するのは,4群の積み上げヒストグラムです。
  25〜 30〜 35〜 40〜 45〜 50〜 55〜 60〜 65〜 70〜 75〜 80〜 85〜 90〜
A 1 3 17 29 48 42 21 7 0 0 0 0 0 0
B 0 0 1 16 34 81 103 74 24 9 1 0 0 0
C 0 0 0 0 3 19 48 104 97 59 8 3 1 0
D 0 0 0 0 0 1 5 14 32 44 35 9 4 3

x <- matrix(c(
1, 3, 17, 29, 48, 42, 21, 7, 0, 0, 0, 0, 0, 0,
0, 0, 1, 16, 34, 81, 103, 74, 24, 9, 1, 0, 0, 0,
0, 0, 0, 0, 3, 19, 48, 104, 97, 59, 8, 3, 1, 0,
0, 0, 0, 0, 0, 1, 5, 14, 32, 44, 35, 9, 4, 3), byrow=TRUE, ncol=14)
colnames(x) <- paste(1:14*5+20, "〜", sep="")
rownames(x) <- LETTERS[1:4]
print(x)
barplot(x, space=0, names.arg=colnames(x), legend.text=rownames(x), ylim=c(0, 200))


No.14232 Re: Stacked histogram  【T.W.】 2011/01/26(Wed) 22:21

ありがとうございます.
重ねて質問させていただきます.

度数ではなく生データから積み上げヒストグラムを作成したいと考えています.

(1) 2群のヒストグラム(http://aoki2.si.gunma-u.ac.jp/R/hist2.html)にあるbeside=TRUEをFALSEとすれば積み上げになるのでしょうか?

(2) 度数分布表(http://aoki2.si.gunma-u.ac.jp/R/dosuu-bunpu.html)では階級幅をwで指定していますが,2群のヒストグラム(http://aoki2.si.gunma-u.ac.jp/R/hist2.html)のbrksがこれに当たるのでしょうか?

No.14233 Re: Stacked histogram  【青木繁伸】 2011/01/26(Wed) 22:30

丸付き文字は使わないで!と,お願いしています。

> beside=TRUEをFALSEとすれば積み上げになるのでしょうか?

やってみればすぐ分かることですね。
beside=FALSE のほかに space=0 としないと変なところに隙間が空きます。

> 階級幅をwで指定していますが,... のbrksがこれに当たるのでしょうか

brks=NULL, # 階級分割点
とあるように,brks は階級の分割点をベクトルで与える事にしています

> 度数ではなく生データから積み上げヒストグラムを作成したい

上のような改造を行っても,2 群の積み上げヒストグラムしか描けません。というか,一般に k 群の積み上げヒストグラムを描けるようにするのは大変面倒です。
生データから度数分布表を作って barplot に渡すようにプログラムするのが良いでしょう。

No.14234 Re: Stacked histogram  【takahashi】 2011/01/27(Thu) 12:33

こういうのもありますよ。

http://had.co.nz/ggplot2/geom_histogram.html

http://had.co.nz/ggplot2/graphics/4ccbf1d33c70b87bc29b77c9e30e7870.png

No.14257 Re: Stacked histogram  【T.W.】 2011/01/28(Fri) 13:33

重ね重ねありがとうございます.
なんとかつくることができました.

>ggplot2
これも使ってみたのですが,binwidth=〜と設定すると群の色分けが上手くいかないようです.(階級の中で群ごと纏まらずまだら模様に・・・)

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