デフォルト設定でグラフを描くな
課題
平均値 50 点,標準偏差 10 点の正規分布に従うと仮定される 1 万人分の試験成績のヒストグラムを描け。
import matplotlib.pyplot as plt
import numpy as np
架空データの生成
np.random.seed(12345)
x = np.random.randn(10000)*10+50
何も考えず,デフォルトでヒストグラムを描く
plt.hist(x);
階級設定をちゃんとする
上のグラフは,階級の設定が変!
階級の開始値と階級幅は「きれいな数」にするのが慣例である。
「きれいな数」とは,階級開始値としては,整数値,2,2.5,4,5 で割り切れる数など。階級幅としては階級開始地ともかんするが生成される階級開始値がきれいな数であること。例えば階級開始地が整数ならば 2.5 は階級幅としては不適切になる。
データの分布範囲を確認してみる。
min(x), max(x)
(12.546441226688884, 89.27528040792731)
最小の階級は 10,階級幅は取りあえずきれいな数として 5 を設定してみよう。
最大の階級は 85〜90 になる。
plt.hist(x, bins=range(10, 90, 5));
まずまずきれいではある。10≦x<15,x > 80 は ほとんど 0 なので,切り捨ててもよいが,注釈は必要だろう。
plt.hist(x, bins=range(15, 90, 5));
plt.hist(x, bins=range(15, 90, 5));
plt.xlim(15, 85)
(15.0, 85.0)
なお,投稿論文に記載するような場合には,投稿規定に従うべきであり,上のような図をそのまま添付することはまず許されないであろう。