matplotlib

Matplotlibは、Python用のデータプロットツールです。

Pythonの可視化で使われる主なパッケージ(参考)

  • matplotlib:標準的に使われます。
    • http://matplotlib.org/
  • pandasのplot:matplotlibを利用して、よりシンプルに可視化できるようになっています。
    • http://pandas.pydata.org/pandas-docs/stable/visualization.html
  • seaborn:matplotlibを利用して、統計データの可視化が簡単にできるようになっています。
    • https://seaborn.pydata.org/

Jupyter Notebookにおけるmatplotlib

Jupyter Notebookでは、インラインあるいは別画面でグラフの可視化ができます。 PyQでは、インライン描画のみ可能です。最初に下記のように設定します。以降では、Jupyter Notebookで描画している想定をします。

%matplotlib inline
import matplotlib.pyplot as plt

Jupyter Notebookにおけるmatplotlibの詳細については、Jupyter Notebookにおけるmatplotlibを参照ください。

matplotlibの可視化サンプル

折れ線グラフ

plt.title('sample')
plt.xlabel('Hour')
plt.ylabel('Traffic')
plt.xlim((0, 2))
plt.ylim((0, 3.5))
plt.plot([1, 3, 2], label='Y')
plt.legend();  # plotのlabelオプションで指定した凡例
  • plt.title:でグラフのタイトルを指定できます。
  • plt.xlabel:でX軸のラベルを指定できます。
  • plt.ylabel:でY軸のラベルを指定できます。
  • plt.xlim:でX軸の範囲を指定できます。
  • plt.ylim:でY軸の範囲を指定できます。
  • plt.plot:で折れ線グラフを描画します。
    • labelオプションは、凡例で使用されます。
  • plt.legend:で凡例を表示します。

複数のグラフを1つのセルに書くと、重ねて描画されます。

plt.plot([1, 3, 2])
plt.plot([0, 1, 2]);

plt.show()があると、そこから新しいグラフとして描画されます。

plt.plot([1, 3, 2])
plt.show()
plt.plot([0, 1, 2]);

棒グラフ

plt.bar([0, 1, 2], [1, 3, 2], width=0.5, color='red', bottom=[1, 2, 2])
plt.xticks([0, 1, 2], ['A', 'B', 'C'], rotation=45);
  • ‘plt.bar’で、棒グラフを描画します。
    • widthオプションで、棒の幅を指定できます。
    • colorオプションで、棒の色を指定できます。
    • bottomオプションで、棒の底の位置を指定します。
  • plt.xticksで、X軸のラベルを指定できます。
    • rotationオプションで、文字を回転します。

円グラフ

plt.figure(figsize=(5, 5))
plt.pie([1, 3, 2], colors=['skyblue', '#20FF20', 'green'], labels=['A', 'B', 'C'], autopct='%1.1f%%');
  • plt.figure(figsize=(5, 5))でグラフの大きさを指定し、縦横比が1になるようにします。
  • plt.pieで、円グラフを描画します。
    • colorsオプションで、色を指定できます。
    • labelsオプションで、ラベルを指定できます。
    • autopctオプションで、表示文字を指定できます。ここでは、割合(%)を表示します。

散布図

plt.scatter([0, 1, 2], [1, 3, 2]);
  • plt.scatter:で散布図を描画します。

ヒストグラム

plt.hist([2, 1, 3, 2], bins=4, range=(0, 4));
  • plt.hist:でヒストグラムを描画します。
  • ヒストグラムを表示するときは、必ず、binsオプションとrangeオプションを指定すると良いでしょう。
    • bins:階級の個数
    • range:X軸の表示範囲

matplotlibのグラフの保存

グラフを描画した後で、plt.savefig(ファイル名)でグラフを画像ファイルとしてファイルに保存できます。形式は、ファイル名の拡張子で決まります。

pandas.DataFrameの可視化サンプル

折れ線グラフ

import pandas as pd
df = pd.DataFrame([[0, 1], [1, 3], [2, 2]], columns=['X', 'Y'])
df.plot(title='sample');

棒グラフ

並べて描画します。

df.plot.bar(colormap='Set1');
  • colormapオプションで、カラーマップを指定します。設定できる値は、plt.colormaps()で確認できます。

積み上げて描画します。

df.plot.bar(stacked=True);

円グラフ

df.plot.pie(subplots=True);

散布図

df.plot.scatter('X', 'Y');

ヒストグラム

df.hist();