【Python】matplotlibでヒストグラムを描画する方法を解説

今回は、Pythonでのヒストグラムの書き方を紹介していきます。

本記事では、ヒストグラムとはどういうものか?ということから、Pythonでのヒストグラムの具体的な書き方までを紹介します。

ヒストグラムの特性をきちんと理解して、目的に合ったヒストグラムを描画しましょう^^

ヒストグラムとは

ヒストグラムとは縦軸に度数横軸に階級を取った統計グラフです。度数分布図とも呼ばれます。

と聞くと、頭が「?」であふれてしまいます。

最もよく見かけるヒストグラムに、「年収の分布」があります。

この場合、年収の範囲ごとに、その年収帯が全体の何%を占めているかということがわかります。この時の階級(区間ともいう)は、100万円単位で21個あることになります。横軸の階級は、binとも呼ばれます

度数は、各階級に該当するデータの個数です。上図の場合、各区間の所得者が、全体に対する何%いるかという情報が度数となります。

階級の個数については特に決まりはなく、自分が見せたいように調整して描画することができます。階級の幅(範囲)を変えると、ヒストグラムが示すデータの特徴は変わってきます。ヒストグラムを用いる意図が伝わるように、階級の数を調整する必要があります。

ヒストグラムでデータの分布がわかる

ヒストグラムを描くことで、そのデータの分布が一目でわかります。例えば上の図の場合、「最も多い所得帯が200-300万円だ」ということや、「正規分布していないので、平均値と中央値は異なってくるだろう」といったことが瞬時にわかってしまいます。

このように、データの分布といった特徴を把握するには、ヒストグラムが最適というわけです。

Pythonでヒストグラムを描画する

それでは、Pythonでヒストグラムを描画していきましょう。

今回は、matplotlibを使ってヒストグラムを描画します。

*Jupyter Notebookを使っているので、.pyファイルにサンプルコードをコピーすると動作しない場合があります。

今回のデータ

今回は、Bostonの住宅データを使ってヒストグラムを描画していきます。

import pandas as pd
from sklearn.datasets import load_boston

data = load_boston()
df = pd.DataFrame(data.data, columns=data.feature_names)

シンプルに描画

まずはシンプルにヒストグラムを描いてみます。

年齢を示す項目”AGE”をデータとして使用します。

import matplotlib.pyplot as plt

x = df["AGE"]
plt.hist(x)

簡単に描くことができました。これだけでも、おおまかにデータの特徴を把握することができます。

ここから、もう少しヒストグラムをカスタマイズする方法を紹介していきます。

階級(bin)の数を指定する

bins= で、階級の数(表示する棒の数)を指定できます。デフォルト値は10です。

plt.hist(x, bins=6)

描画する範囲を指定する

range=(最小, 最大)を指定することで、描画範囲を指定できます。データ全体を表示させる必要がない場合に有効です。

plt.hist(x, range=(60,100))

累積値を出力する

cumulative=True とすることで、累積値のヒストグラムを出力することができます。

plt.hist(x, cumulative=True)

この場合、左側の階級に対する累積値が表示されています。

色を変える

グラフの色を変えるには、color= を渡します。

例では、緑に設定します。

plt.hist(x, color="green")

“red”, “blue”, “yellow”, “pink”, “purple(紫)”など、様々な色に変更することができます。

塗りつぶしを無くすこともできます。

histtype=”step” を渡します。

plt.hist(x, histtype="step")

棒の向きを横向きにする

デフォルトでヒストグラムを描くと、棒が縦向きになっていますが、横向きに描画することも可能です。

orientation=”horizontal” を渡すことで、横向きのヒストグラムを描くことができます。

plt.hist(x, orientation="horizontal")

Pythonでデータサイエンスするなら

Pythonでデータサイエンスをするなら、以下の書籍がおすすめです。Pandas、matplotlib、Numpy、scikit-learnといったデータサイエンスに必要なライブラリを、体系立てて一通り学ぶことができます。

ややお値段高めですが、これ1冊で十分という内容・ボリュームなので、損はしないと思います^^

まとめ

ヒストグラムとはどういうものかということから、Pythonでのヒストグラムの書き方までを紹介してきました。

ヒストグラムは、データの特徴を捉えるためによく用いられるグラフです。ヒストグラムを扱えるようになると、データ分析だけでなく、プレゼン等でも役に立つかもしれません。

少なくとも、ヒストグラムがどういうものなのかということは把握しておきたいですね。

ではでは👋