裏 RjpWiki

Julia ときどき R, Python によるコンピュータプログラム,コンピュータ・サイエンス,統計学

図を描くときに「やるべきこと」と「やってはいけないこと」(その7)

2019年12月10日 | ブログラミング

誤解してはいけない。

ナイチンゲールの鶏頭図は,正しいのだよ(^_^;)

ナイチンゲールの鶏頭図(コウモリの翼)はボンヤリとした画像だなあぐらいにしか思っていない人が多い。

 

左下に注釈が書いてあるが,明確に "The areas of the blue, red, & black wedges are each measured from the centre as the common vertex." と書かれている。つまり,(中心からの)おうぎ形の面積が量を表すと書いてある。

疑り深い人の為に,この記事の最後に,元のデータがあるので自分で確かめるとよい。

右側の図(1854/04 ~ 1855/03)を R で描いてみる。

df = read.csv("FN.csv")
df$r.diseases = df$diseases / df$total * 12000
df$r.wounds = df$wounds / df$total * 12000
df$r.others = df$others / df$total * 12000
df1 = df[1:12, 7:9]
df1
begin = seq(180, -210, by = -30)
old = par(mar = c(0, 0, 0, 0))
plot(c(-26, 18), c(-32, 16),
    type = "n", bty = "n", asp = 1, xlab = "", ylab = "", axes = FALSE)
color = c("aliceblue", "pink", "gray")
for (i in 1:12) {
    deg = seq(begin[i], begin[i+1], length.out = 1000) / 180 * pi
    for (j in order(df1[i,], decreasing = TRUE)) { # df1[12,] はバグだった
        r = sqrt(df1[i, j])
        x = c(0, r * cos(deg))
        y = c(0, r * sin(deg))
        polygon(x, y, col = color[j])
    }
}

面積が量を表すということであるから,半径は量の平方根であるということを r = sqrt(df1[i, j]) で指定している。

できあがった図は以下のようになり,ナイチンゲールが描いたものと同じになっている。

さて,鶏頭図はナイチンゲールが最初に発明したものではないという話もあるが,上の図は本当に見やすいだろうか?人間は量を面積で把握する力は低い。それでも「水色の部分がおおきいでしょ!」というナイチンゲールの主張は十分に明確なのだけど,下のような図の方がもっと声高く主張しているのがわかる。

Zymotic diseases は 1855 Jan に最も死亡率が高く 1022.8 である。そのときの Wounds & injuries は 30.7 である。前者は後者の 33 倍である。

鶏頭図の面積を比較して,面積比が 33 倍になっていることを理解することができるだろうか?折れ線グラフだとどうだろうか?

 

ナイチンゲールの元データ。

   Mon Year total diseases wounds others  r.diseases    r.wounds   r.others
1    4 1854  8571        1      0      5    1.400070   0.0000000   7.000350
2    5 1854 23333       12      0      9    6.171517   0.0000000   4.628638
3    6 1854 28333       11      0      6    4.658878   0.0000000   2.541206
4    7 1854 28772      359      0     23  149.728903   0.0000000   9.592660
5    8 1854 30246      828      1     30  328.506249   0.3967467  11.902400
6    9 1854 30290      788     81     70  312.182238  32.0897986  27.731925
7   10 1854 30643      503    132    128  196.978103  51.6920667  50.125640
8   11 1854 29736      844    287    106  340.597256 115.8192090  42.776433
9   12 1854 32779     1725    114    131  631.501876  41.7340370  47.957534
10   1 1855 32393     2761     83    324 1022.813571  30.7473837 120.025932
11   2 1855 30919     2120     42    361  822.795045  16.3006566 140.108024
12   3 1855 30107     1205     32    172  480.286976  12.7545089  68.555485
13   4 1855 32252      477     48     57  177.477366  17.8593576  21.207987
14   5 1855 35473      508     49     37  171.849012  16.5759874  12.516562
15   6 1855 38863      802    209     31  247.639143  64.5343900   9.572087
16   7 1855 42647      382    134     33  107.487045  37.7048796   9.285530
17   8 1855 44614      483    164     25  129.914377  44.1117138   6.724347
18   9 1855 47751      189    276     20   47.496388  69.3598040   5.026073
19  10 1855 46852      128     53     18   32.784086  13.5746606   4.610262
20  11 1855 37853      178     33     32   56.428817  10.4615222  10.144506
21  12 1855 43217       91     18     28   25.267834   4.9980332   7.774718
22   1 1856 44212       42      2     48   11.399620   0.5428390  13.028137
23   2 1856 43485       24      0     19    6.622973   0.0000000   5.243187
24   3 1856 46140       15      0     35    3.901170   0.0000000   9.102731

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 図を描くときに「やるべきこ... | トップ | cockscomb と wind rose »
最新の画像もっと見る

コメントを投稿

ブログラミング」カテゴリの最新記事