1つを極める~matplotlib編part4
こんにちは。今日も張り切って行きましょう
前回のおさらい
- ダッシュ線の書式を変更→dash_capstyle
- ダッシュ線の間隔を指定→dashes
- マーカーの淵の色を変更→markeredgecolor(mec)
- マーカーの淵の幅を変更→markeredgewidth(mew)
でした。
今回はplot()から一旦離れて違う関数についてアウトプットしていけたら
と考えております。
今日の内容
です。
真っ白な新しいウィンドウを描画・・figure()
matplotlib.pyplot (pltと呼ぶことにします)に含まれるfigure()メソッドは
何も描画されてない新しいウィンドウを作るメソッドです。
いわば「これから書きまーす!!!」みたいな宣言をするときに使います。
このfigure()にも引数(オプション)が用意されていて
- 保存するときの図のサイズ変更→figsize
- 1インチあたりのドット数変更→dpi
- 背景色を変える→facecolor
- 枠の色を変える→edgecolor
などが挙げられます。
figure()で引数をいじってみて描画してみます。
import numpy as np
%matplotlib inline
fig=plt.figure(facecolor='r',edgecolor='b')
ax1=fig.add_subplot(2,2,1) #サブプロットを挿入
ax2=fig.add_subplot(2,2,2) #サブプロットを挿入
fig
挿入された2つのグラフの背景が赤色になってます。
イメージとしてfigure()により描画する所の大元が設定される感じです。
ちょっと見慣れないメソッドが出てきましたね。
新たなサブプロットを追加する・・add_subplot()
add_subplot()は図にサブプロットを挿入するときに使うメソッドです。
- サブプロットとは?
- →1つのグラフを描く為の領域のようなもの
add_subplot()には引数が用意されていてこの理解が大事です。
add_subplot(a,b,c)
a・・図を水平方向にa分割してね
b・・図を垂直方向にb分割してね
c・・a×b分割したうちのc番目ね
という引数です。
先ほどのコマンドで説明すると
import numpy as np
%matplotlib inline
fig=plt.figure(facecolor='r',edgecolor='b')
ax1=fig.add_subplot(2,2,1) #サブプロットを挿入
ax2=fig.add_subplot(2,2,2) #サブプロットを挿入
fig
ax1なら
「図を2×2分割したときの1番目にサブプロットを挿入」
ax2なら
「図を2×2分割したときの2番目にサブプロットを挿入」
となります。
では「図を2×2分割したときの3番目にサブプロットを挿入」すると
何処にサブプロットが生成されるでしょうか?
正解は・・
左下でした〜〜
ポイントは番号は左上から数えることです。
この場合だと左上から1。右に移動して2
左下で3。ということになります。
けどこれ3x3のサブプロットを作ろうと思ったときや, より分割された図を作ろう
と思ったときいちいちこれを打ち込むのは辛い・・
しかし!!!
めっちゃ便利なメソッドが用意されているんです。
超便利!! subplots()
例えば2x3のサブプロットを1つの図で作りたいとき
import numpy as np
%matplotlib inline
fig,axes=plt.subplots(2,3)
でおしまいなんです。
subplots()に2つの引数は行番号と列番号を示していて
ここの引数をいじるだけで完結してしまうのです。
さらにsubplotsのすごいところは
指定したサブプロットに対して編集をかけることができます。
例えば1行2列目のプロットに対して編集したい場合。
「axes[0,1].コマンド」で行うことができます
subplotsの返り値は画像情報とサブプロットオブジェクトの配列で
受け取った配列を指定することでそのサブプロットに
対して編集をかけることが可能になります。
参考文献・サイト
次回もう少しsubplots()について説明して行きます。