Up

散布図

 

Spiegelhalter(2019)の散布図 Figure 0.1の描画を試みたスクリプトをリスト1に示す。入力データファイル00-1-shipman-confirmed-victims-x.csvは、Spiegelhalter(2019), p. xviに記載されているウェブサイトからダウンロードしたものである。リスト1のスクリプトを実行すると図1のグラフが表示される。

図1 記録時(年)と年齢の散布図

 

Shipmanの患者の死亡時(年)と死亡年齢の散布図である。Spiegelhalter (2019)は、1992年ごろを境として死亡者数が増加していると説明している。

 

 

 

リスト1 死亡記録時(年)と死亡年齢の散布図描画Pythonスクリプト例

 

import pandas as pd

import matplotlib.pyplot as plt

 

#        ダウンロードしたファイルの読み込み

d_csv = pd.read_csv('00-1-shipman-confirmed-victims-x.csv')

age = d_csv['Age']

year_death = d_csv['fractionalDeathYear']

gender = d_csv['gender']

age_woman = age[gender==0]                 #   女性の死亡年齢

year_death_woman = year_death[gender==0]   #   女性の死亡記録時(年)

age_man = age[gender==1]                   #   男性の死亡年齢

year_death_man = year_death[gender==1]     #   男性の死亡記録時(年)

 

fig = plt.figure(figsize=(7,7))

#      左下の区画: 散布図用

ax1 = plt.subplot2grid((4,4), (1,0), rowspan=3,colspan=3)

#      左上の区画: 記録時(Year)のヒストグラム用

ax2 = plt.subplot2grid((4,4), (0,0), rowspan=1, colspan=3, sharex=ax1)

#      右下の区画: 年齢のヒストグラム用

ax3 = plt.subplot2grid((4,4), (1,3), rowspan=3, colspan=1, sharey=ax1)

                   

ax1.scatter(year_death_woman, age_woman, c='orange', alpha=0.5, edgecolors='k',

            label = 'Women')

ax1.scatter(year_death_man, age_man, c='b', alpha=0.5, edgecolor='k',

            label = 'Men')

ax1.set_xlabel('Year', fontsize=14)

ax1.set_ylabel('Age of victim', fontsize=14)

ax1.legend()

 

ax2.hist([year_death_woman, year_death_man], color=['orange', 'b'],

         label=['Women', 'Men'])

ax2.legend()

 

ax3.hist([age_woman, age_man], color=['orange', 'b'], orientation='horizontal',

         label=['Women', 'Men'])

ax3.legend()

 

fig.tight_layout()

fig.show()

 

 

 

参考文献

岡本安晴(2019) いまさら聞けないPythonでデータ分析.丸善出版

Spiegelhalter, D. (2019). The art of statistics: Learning from data. Pelican

 

 

 

Home