Pythonによる綺麗なヒストグラムの作成方法

Pythonを使って、綺麗なヒストグラムを作りましょう。
seabornライブラリのdistplotを使用していきます。
また、環境はJupyter notebookを使用していることを想定しています。

使用データの読み込み

今回は、以下のテストの成績データを使ってみます。

まずは読み込ませましょう。

ヒストグラムの描画

Pythonでヒストグラムを書く方法は幾つかありますが、seabornを使う方法が最も綺麗な図を作成できると思います。

あまり細かい事に拘らないのであれば、以下のように引数にヒストグラム化したいデータを与えるだけでOKです。
今回は算数のデータでヒストグラムを書いてみます。

・・・一応、できたみたいです。
デフォルトだと上に曲線が描かれていますが、これはKDE(カーネル密度推定)と言って、ヒストグラムの形状を滑らかに1本の線にしたものとなっています。

ざっとデータの状況を確認したいだけならこれでも良いのですが、どこかに掲載する図にする場合はもう少し整えてみたいですね。

グラフの調整

ヒストグラムをざっと整える方法として、以下の3つの引数を紹介します。

  • kde=False・・・カーネル密度関数の曲線を非表示にする
  • bins=(数字)・・・棒の本数を指定する
  • hist_kws={“range”:(数字A,数字B)}・・・X軸の最小値・最大値を指定する(※kdeを表示している場合は無視されます)

以上3つを適用して、改めてヒストグラムを描画してみます。
今回はカーネル密度関数は不要と思われます。
点数なので表示範囲は0〜100で良いでしょう。
棒は10点刻みがキリが良いので、binsは10にします。

綺麗なヒストグラムになったようです。

重ねて表示する

distplotを連続実行するだけで、複数のヒストグラムを重ねて表示することができます。
試しに、算数のグラフの上に国語のグラフを重ねてみましょう。

2つが重なり、算数と国語のそれぞれの傾向が分かりやすくなりました。
ただ、あまり重ねすぎると分からなくなるので、2〜3つくらいまでにした方が良いと思います。

これで、無事に見た目の良いヒストグラムが完成しました。