matplotlib¶
Matplotlibは、Python用のデータプロットツールです。
Pythonの可視化で使われる主なパッケージ(参考)¶
matplotlib:標準的に使われます。
pandasのplot:matplotlibを利用して、よりシンプルに可視化できるようになっています。
seaborn:matplotlibを利用して、統計データの可視化が簡単にできるようになっています。
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();