Pythonでのプロットと可視化(matplotlib編) 〜 3−2.図の設定(目盛り、ラベル、凡例、注釈)
前回「Pythonでのプロットと可視化(matplotlib編) 〜 3−1.図の設定(余白、色、マーカー、線種)」の続き。
◎プロットの装飾方法
下記2通りある。
・pyplotインタフェースを使う方法
・matplotlibのネイティブなAPIを使う方法
※)「The Matplotlib API」を参照。
これらは描画領域に対して使うものだから、アクティブなAxesSubplotか、最後に作られたAxesSubplotに対して作用する。
例えば、xlimの場合は、ax.get_xlimといった具合。
◎目盛り、目盛りのラベル、タイトル、軸のラベルの設定
#coding:utf-8 import numpy as np import matplotlib.pyplot as plt ### 1.データ準備 data = np.random.randn(1000).cumsum() ### 2.新規ウィンドウの作成 fig = plt.figure() ### 3.ウィンドウへのサブプロットの作成 ax = fig.add_subplot(1, 1, 1) ### 4.サブプロットへのグラフ作成 ax.plot(data) ### 5.サブプロットへ作成したグラフへの各種設定 # 5-1.x軸への目盛り設定位置の指定 ticks = ax.set_xticks([0, 250, 500, 750, 1000]) # 5-2.指定した目盛り設定位置へのラベル作成 labels = ax.set_xticklabels(['one','two','three','four','five'], rotation=30, fontsize='small') # 5-3.グラフのタイトル作成 ax.set_title('matplotlib plot') # 5-4.グラフのX軸ラベル作成 ax.set_xlabel('X-axis') # 5-5.グラフのY軸ラベルの作成 ax.set_ylabel('Y-axis')
データを準備し、「4.サブプロットへのグラフ作成」を実施してから「5-2.指定した目盛り設定位置へのラベル作成」を実施するまでの結果は次図。
次に、「5-3.グラフのタイトル作成」してから「5-5.グラフのY軸ラベルの作成」するまでの結果は次図。
◎凡例の追加
凡例を追加するには、前回「Pythonでのプロットと可視化(matplotlib編) 〜 3−1.図の設定(余白、色、マーカー、線種)」の最後に少し出てきたplt.legend()を使用するか、ax.legend()を使用する。
#coding:utf-8 import numpy as np import matplotlib.pyplot as plt ### 1.新規ウィンドウの作成 fig = plt.figure() ### 2.ウィンドウへのサブプロットの作成 ax = fig.add_subplot(1, 1, 1) ### 3.グラフ作成 ax.plot(np.random.randn(1000).cumsum(), color='k', linestyle='-', label='one') ax.plot(np.random.randn(1000).cumsum(), color='k', linestyle='--', label='two') ax.plot(np.random.randn(1000).cumsum(), color='k', linestyle='dotted', label='thre') ### 4.凡例付与の実行 ax.legend(loc='best')
◎注釈をサブプロットに描画する
注釈やテキストは、textやarrow、annotate関数を使用すると良い
詳しくは「matplotlibのBeginner’s Guide」を参照。
コード例。
### 1.データ準備 data = np.random.randn(1000)*1000 ### 2.新規ウィンドウの作成 fig = plt.figure() ### 3.ウィンドウへのサブプロットの作成 ax = fig.add_subplot(1, 1, 1) ### 4.サブプロットへのグラフ作成 ax.plot(data) ### 5.注釈を付ける # 5-1.textによる注釈 ax.text(0,0,'Annotation1', family='monospace', fontsize=15, color='red') ax.text(250,-2000,'Annotation2', family='monospace', fontsize=15, color='red') ax.text(500,3000,'Annotation3', family='monospace', fontsize=15, color='red') ax.text(950,100,'Annotation4', family='monospace', fontsize=15, color='red') # 5-2.annotate関数による注釈 ax.annotate( 'Annotation5', xy=(750,-1000), #arrowpropsの矢印の終点 xytext=(750, -1000+1000), #注釈コメントの位置。arrowprops矢印の始点 arrowprops=dict(facecolor='red'), #矢印の設定 horizontalalignment='left', verticalalignment='top', color='red' )
以上。
Pythonによるデータ分析入門 ―NumPy、pandasを使ったデータ処理
- 作者: Wes McKinney,小林儀匡,鈴木宏尚,瀬戸山雅人,滝口開資,野上大介
- 出版社/メーカー: オライリージャパン
- 発売日: 2013/12/26
- メディア: 大型本
- この商品を含むブログ (19件) を見る