グラフの例:生まれかわり

統計数理研究所の日本人の国民性調査の中から男・女の生まれかわりを図示しよう。

質問「もういちど生まれかわるとしたら、あなたは男と女の、どちらに、生れてきたいと思いますか?」に対して,回答の選択肢は「男に」「女に」「その他」(記入),「D.K.」(Don't Know=わからない)である。

次の表はそれぞれ,男が「男に」と答えた割合,男が「女に」と答えた割合,女が「男に」と答えた割合,女が「女に」と答えた割合を,%単位で示した。

年      男男    男女    女男    女女
1958    90      5       64      27
1963    88      7       55      36
1968    89      5       43      48
1973    89      5       42      51
1978    90      4       41      52
1983    90      5       39      56
1988    90      4       34      59
1993    88      3       29      65
1998    88      5       28      67
2003    87      5       25      69
2008    87      6       23      71

上の表をコピーして,Windowsなら

生まれかわり = read.table("clipboard", header=TRUE)

Macなら

生まれかわり = read.table(pipe("pbpaste"), header=TRUE)

と打ち込む。正しく入力できたか調べるために

生まれかわり

とだけ打ち込んでみよう。

ここでできたオブジェクト 生まれかわり は2次元のデータフレームである。各変数は 生まれかわり$男男 などのような書き方でアクセスできる。生まれかわり$ を略して 男男 といった名前だけでアクセスするには

attach(生まれかわり)

と打ち込む。

グラフを描くには,単純には

plot(年, 男男, type="o", ylim=c(0,100))
points(年, 男女, type="o")

などのようにすればいい。Macではあらかじめ par(family="HiraKakuPro-W3") のように打ち込んでおかないと日本語部分が化ける。もっとかっこよくするには次のようにする。

# par(family="HiraKakuPro-W3")            # Mac

par(mgp=c(2,0.8,0))     # 軸マージン(デフォルト: c(3,1,0))
par(las=1)              # 縦軸の文字を横向きにしない

plot(年, 男男, ylim=c(0,100),
     pch=1, type="o", col="royalblue3", lwd=2,
     xlab="", ylab="", xaxt="n")
points(年, 男女, pch=2, type="o", col="royalblue3", lwd=2)
points(年, 女男, pch=16, type="o", col="orangered2", lwd=2)
points(年, 女女, pch=17, type="o", col="orangered2", lwd=2)

mtext("生まれかわるとしたら…", 3, cex=1.2, line=0.2)

axis(1, 年)
axis(2, "%", at=100, padj=-1)

text(1983, 男男[年==1983], "男:男に", pos=3)
text(1983, 男女[年==1983], "男:女に", pos=3)
text(1983, 女男[年==1983], "女:男に", pos=3)
text(1983, 女女[年==1983], "女:女に", pos=3)
生まれかわるとしたら…

奥村晴彦

Last modified: 2010-07-07 14:16:05