1
1

駄目グラフ001

Posted at

デフォルト設定でグラフを描くな

課題

平均値 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);

output_6_0.png

階級設定をちゃんとする

上のグラフは,階級の設定が変!

階級の開始値と階級幅は「きれいな数」にするのが慣例である。
「きれいな数」とは,階級開始値としては,整数値,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));

output_10_0.png

まずまずきれいではある。10≦x<15,x > 80 は ほとんど 0 なので,切り捨ててもよいが,注釈は必要だろう。

plt.hist(x, bins=range(15, 90, 5));

output_12_0.png

plt.hist(x, bins=range(15, 90, 5));
plt.xlim(15, 85)
(15.0, 85.0)

output_13_1.png

なお,投稿論文に記載するような場合には,投稿規定に従うべきであり,上のような図をそのまま添付することはまず許されないであろう。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1