ここでもデータの例として いろいろな都道府県別データ の人口を使います。
棒グラフは必ず0から始まらなければなりません。折れ線グラフにはこの制約はありませんが,名義尺度では使えません。都道府県のような名義尺度の場合には,(Clevelandの)ドットプロット(dot plot)が便利です。これは,基本的には
# par(family="HiraKakuPro-W3") dotchart(population, labels=kenmei)
で描けますが,少しだけ凝ってみます:
# quartz(width=4.568898, height=9.960630) # Mac # par(family="HiraKakuPro-W3") # Mac par(mar=c(5,5,2,2)+0.1) # マージン(デフォルト: c(5,4,4,2)+0.1) par(mgp=c(2,0.8,0)) # 軸マージン(デフォルト: c(3,1,0)) par(xpd=FALSE) # プロットエリア外に描かない par(xaxs="i") # プロットエリアを範囲ぴったりに o = order(population) dotchart(population[o]/1000, pch=16, xlim=c(0,14), xlab="人口(100万人)") par(xpd=TRUE) # プロットエリア外に描く text(0, seq_along(o), kenmei[o], pos=2) axis(3, labels=FALSE)

dotchart() はRで標準のものですが,lattice
パッケージにはやや高機能のものが入っています。これは基本的には
library(lattice) dotplot(kenmei ~ population)
でいいのですが,少しだけ凝ってみます:
library(lattice)
x = reorder(kenmei, population)
dotplot(x ~ population/1000, scales=list(fontfamily="HiraKakuPro-W3"), xlab="")
mtext("人口(百万人)", 1, padj=4.5)
HiraKakuPro-W3
はMacのフォントですので,適宜変更してください。
epicalc パッケージにも dotplot()
という関数がありますが,これは点で描いた度数分布図です。epicalc
パッケージでは summ()
という関数でデータの要約を出力しますが,それに付随して大きい順に並べ替えたデータがプロットされます。こちらのほうがClevelandのドットプロットに近いものです。詳しくは
Analysis of epidemiological data using R and Epicalc
というオンライン本が公開されています。
Last modified: 2009-05-09 21:40:08