format_list_bulleted
【Python】matplotlibでヒストグラムを描画する方法(Python3)
最終更新日時:2020-05-08 10:01:10



ヒストグラムをはじめとする様々なグラフを描画したいときに、Python(Python3)ではmatplotlibという描画ライブラリを使うことが出来ます。今回はmatplotlibを使用してヒストグラムを描画する方法について解説します。matplotlibの導入方法や他の種類のグラフの描画方法については別の記事で紹介する予定です。

matplotlibとは

matplotlibはPythonのオープンソースライブラリの一つで、2Dのグラフ描画を可能にしています。このライブラリを使用することでグラフの描画が簡単に行なえます。インポートは次のように行います。

import matplotlib

この一文だけを記載したコードを実行して、次のようなが出る場合は、matplotlibライブラリがインストールされていませんので、matplotlibの導入を行ってください。

ModuleNotFoundError: No module named 'matplotlib'

pip3もしくはpipが導入されている場合はコマンドプロンプトまたはターミナル次のコマンドでインストール出来ます。

pip3 install matplotlib
pip install matplotlib

基本的なヒストグラムの描画

呼び出し方

最も基本的なヒストグラムはmatplotlibのpyplotモジュールを使用します。pyplotモジュール内のhistメソッドに引数としてリスト(list)を渡します。listの詳しい使い方については「Pythonでのlistの使い方(Python3)」を参照してください。listからヒストグラムを作成して描画するには次のように記述します。

import matplotlib.pyplot
matplotlib.pyplot.hist(リスト名)
matplotlib.pyplot.show()

また、

import matplotlib.pyplot as plt

とすることで、コード中にmatplotlib.pyplotと呼び出す部分をpltと省略できます。

matplotlibの使用例

実際にリストからヒストグラムを描画してみます。次のようなコードを実行します。

import matplotlib.pyplot as plt
dataset=[0,1,2,4,3,3,3,3,2,4,5]
plt.hist(dataset)
plt.show()

実行結果

次のようなウィンドウが表示されます。

histメソッドのオプション

描画するヒストグラムをカスタマイズするために、histメソッドには様々なオプションが用意されています。今回紹介するものは代表的なもののみなので、更に詳しく知りたい方はmatplotlibの公式リファレンスを参照してください。

ヒストグラムの種類を変更

histtypeオプションを指定することで、ヒストグラムの種類を変更することができます。デフォルトではbarとなっています。

  • bar(デフォルト)

次のプログラムを実行します。オプションをつけない場合と、histtype=’bar’は実行結果は同じになります。

import matplotlib.pyplot as plt
dataset=[0,1,2,4,3,3,3,3,2,4,5]
plt.hist(dataset,histtype=bar)
plt.show()

実行結果

次のようなウィンドウが表示されます。

  • barstacked(積み上げヒストグラム)

histtype=’barstacked’とすることで、複数のデータを一つのヒストグラムにまとめて積み上げることができます。第一引数にデータセットのlistまたはtupleを渡し、第二引数にhisttype=barstackedを指定します。実際の例を次に示します。

import matplotlib.pyplot as plt
dataset1=[0,1,2,4,3,3,3,3,2,4,5]
dataset2=[0,1,2,3,4,5]
plt.hist([dataset1,dataset2],histtype='barstacked')
plt.show()

実行結果

  • step(線のみ)

histtype=’step’とすることで線のみのヒストグラムを作成することが出来ます。

import matplotlib.pyplot as plt
dataset=[0,1,2,4,3,3,3,3,2,4,5]
plt.hist(dataset,histtype='step')
plt.show()

実行結果

  • stepfield(塗りつぶし)

histtype=’stepfilled’とすることで、塗りつぶしのヒストグラムを作成できます。

import matplotlib.pyplot as plt
dataset=[0,1,2,4,3,3,3,3,2,4,5]
plt.hist(dataset,histtype='stepfilled')
plt.show()

実行結果

最大値・最小値を指定

range=(最大値,最小値)

とすることでグラフの横軸の範囲を変更できます。

例えば次の例のようにすることで横軸を0から10の範囲にすることが出来ます。

import matplotlib.pyplot as plt
dataset=[0,1,2,4,3,3,3,3,2,4,5]
plt.hist(dataset,range=(0,10))
plt.show()

実行結果

色を変更

color=色名とすることでグラフの色を変更できます。使用できる色は公式リファレンスで参照できます。

import matplotlib.pyplot as plt
dataset=[0,1,2,4,3,3,3,3,2,4,5]
plt.hist(dataset,color='red')
plt.show()

実行結果

この記事のまとめ

今回はmatplotlibを使用してヒストグラムを作成する方法について解説しました。最後に要点をまとめます。

  • グラフの描画はmatplotlib.pyplot
  • ヒストグラムの描画はmatplotlib.pyplot.histメソッド
  • ヒストグラムの種類を変えるときはhisttype
  • ヒストグラムの範囲を変えるときはrange
  • ヒストグラムの色を変えるときはcolor

pythonのmatplotlibを活用しましょう!