Rによる作図

2012.01.19

正規分布グラフ

■ dnorm を使った .R ファイル

正規分布に関する計算は dnorm() を使って行なう。

normgraph <- function(x) dnorm(x, mean=7.8, sd=69.4)
plot (normgraph, xlim=c(0, 500), ylim=c(0, 0.008), ann=F)
dev2bitmap("dnorm_v.pdf", type="pdfwrite", width=5)
dev.off()

GUI版のRで実行した場合、作業ディレクトリに dnorm_v.pdf ファイルが出現する。ann=F によってグラフには x軸 y軸ともにラベルは表示されない。

CGI を使って語彙分布を調べた結果を出力する場合には、 mean の部分に算出した平均値、sd の部分に標準偏差を書き込むようにスクリプトをつくる。x軸の目盛り上限は出現率が最も高い word type の token 数と等しくする必要がある。概ね word token 総数に対して 0.06 程度の値になるようである。

■ hist を使った .R ファイル

ヒストグラムに関する計算は hist() を使って行なう。

# data <- c(198, 75, 155, 75, 198, 178, 95)
# hist(data)
# hist(rnorm(10000))
hist(rnorm(10000), breaks=200)
dev2bitmap("hist_v.pdf", type="pdfwrite", width=5)
dev.off()

GUI版のRで実行した場合、作業ディレクトリに hist_v.pdf ファイルが出現する。breaks によって分割区間の数を設定できる。一般的にはコメントアウトした部分(1行目)のようにヒストグラム作成用データを読み込ませる。

CGI を使って語彙分布を調べた結果に基づいてヒストグラムを作成することには、ほとんど意味はない。左端に極端に長い柱が一本立ち、スケールの取り方によってはそのすぐ隣に二三の極短い柱が見えることもある...といった程度のものにしかならない。

■ 重ねて描く .R ファイル

重ねて描く場合には par(new=TRUE) を使う。

normgraph <- function(x) dnorm(x, mean=7, sd=60)
plot (normgraph, xlim=c(0, 500), ylim=c(0, 0.008), ann=F)
par(new=TRUE)
hist(rnorm(10000), xlab="", ylab="", main="", axes=F)
#box()
#legend ("top", "Title")
dev2bitmap("dnorm_v.pdf", type="pdfwrite", width=5)
dev.off()

axes=F で目盛りと数値、x,y軸を含む枠線をまるごと消去できる。 上の例ではコメントアウトで機能を消してあるが box() を使えば枠線だけを描画でき、legend()を使うと凡例など文字をグラフに書き込める。

上図は重ね合わせ例として示したが無意味な図である。語彙分布を調べて得た平均値と標準偏差から作った曲線を描画し、その背景に正規分布を表すヒストグラムを重ねているが、両者のx軸とy軸は揃っていない。

▼研究関連メモ目次へ戻る

Copyright(c)2005-2012 ccoe@mac.com Allrights reserved.