5-3.オブジェクト指向で体裁を整える
オブジェクト指向でMatplotlibを扱う最大の利点はグラフをモノとして感覚的に体裁を整えられる点ではないかと思います.例えば,
グラフのxの範囲を0から4000にしたい
↓
axesオブジェクトにあるxの範囲を0から4000にする
↓
ax. set_xlim([0,4000])
↓
axesオブジェクトにあるxの範囲を0から4000にする
↓
ax. set_xlim([0,4000])
y軸の目盛り数値を14ptにしたい
↓
Axesオブジェクトのyaxisにあるtickのlabelsizeを14にする
↓
ax.yaxis.set_tick_params(labelsize=14)
↓
Axesオブジェクトのyaxisにあるtickのlabelsizeを14にする
↓
ax.yaxis.set_tick_params(labelsize=14)
といった感じです.これなら頭の中で想像した体裁の変更が図の構造を前提として簡単に実装できるのではないでしょうか.グラフにおける各種構成要素は以下の図のように定義されており,Matplotlibにおける関数名もこれらの名前に沿って命名されています.ここでは,先程のページのの折れ線と散布図がセットで書かれたグラフの体裁を整える過程を例として,Matplotlibの詳細を学んでいきましょう.

まず,修正する前のグラフを見てみましょう.論文に掲載するには様々な問題が有ることが分かるはずです.

これを(1)から(5)まで順次修正していきましょう.
(1)グラフの色を黒に
これは非常に簡単です.グラフをaxesにプロットする際に引数としてcolor=”k”としましょう.”k”は黒を意味します.色一覧はMatplotlibホームページ|home| examples| gallery| pyplot| docs »Matplotlib Examples »color Examplesにあります.ちなみに,Scatterで作るmarkerの形はmarker,sでサイズ,alphaで塗りつぶしの透明度,linestyleで折れ線の形状,edgecolorsで外枠の色,linewidthsで枠線の太さを指定できます.他にも色々なオプションがあります.あるいはline = ax.plot(x,y)としたオブジェクトを最初に生成した上で, line.set_c(“k”)とするオブジェクト的な記法でも変更が可能です.ただし,この場合はオブジェクト的な記法であとから修正するよりもグラフを描画する段階でしっかりと指定したほうが良いでしょう.グラフオプションの設定方法はネットに色々と参考になるページがあります.
>>> ax.plot(x,y,color=”k”) #黒色でプロット >>> ax.scatter(x,y,color=”k”)

>>> ax.plot(x, y, color=”k”, linestyle=”:”, linewidth=20) >>> ax.scatter(x, y, color=”blue”, edgecolor=”k”, marker=”^”, alpha=0.5, s=50)

(2)軸ラベルがない
これはset_○labelというコードで設定可能です.追加したい軸ラベルはaxesオブジェクトに存在しますので以下のようなコードになります.これもlabelsizeという文字サイズオプションなどがあります.MATLAB記法では plt.○labelです.
>>> ax.set_xlabel(“xaxis”) >>> ax.set_ylabel(“yaxis”)

(3)目盛りを内側に出したい
(4)上下左右に目盛りを出したい
これらはaxesオブジェクトにあるaxisオブジェクトのset_tick_params()を設定することで体裁を整えられます.あるいは, axes.tick_params()とすることで両軸の設定を一括して行えます.
>>> ax.xaxis.set_tick_params(direction=”in”,top=True) #目盛りを内側に,上軸も設定 >>> ax.yaxis.set_tick_params(direction=”in”,right=True) #目盛りを内側に,右軸も設定
>>> ax.tick_params(direction="in",right=True,top=True,which=True) #両軸を一括して設定

(5)軸に余計な出っ張りが有る
この問題は軸の範囲を指定するax.set_○lim()を使用します.範囲は一つの引数として入れなくてはならない点に注意しましょう.
>>> ax.set_xlim([0,10]) #リストとして一つの引数に >>> ax.set_ylim([-1,1])
また,注意深い人はy軸のラベルが切れてしまっていることに気づいているかもしれません.こうした際にはFigureオブジェクトに対して調整を行う fig.subplots_adjust()を使用して調整を行います.
>>> fig.subplots_adjust(left=0.5)
ここまででそれなりのグラフに体裁が整っているはずです.参考にmatolotlibで使用できる色一覧を載せておきました.様々な場面でcolor=”色の名前”とすることでグラフの色を自由自在に変えることができます.

