Python でグラフを描く Matplotlib #6
株式会社リュディアです。Python でグラフを描く方法についてまとめます。引き続き Matplotlib を使った方法についてです。
前回までの Python でグラフを描く Matplotlib のまとめへのリンクは以下を参考にしてください。
今回も複数のグラフを並べる方法なのですが記述方法についてまとめてみます。前回までに使っていた方法はべたな方法なのですが、実は Matplotlib ではオブジェクト指向インタフェースを使うことを推奨しています。
以下のページの上から2つ目のグレーに色付けされている部分に In general, try to use the object-oriented interface over the pyplot interface.という記述があります。
では、さっそく見ていきましょう。前に使った最後の例を使います。オブジェクト指向なのでオブジェクトの定義を意識し、各オブジェクトに対してどのようなアクションを指示しているのか注意する必要あります。では以下のコードを見ていきましょう。
x = [0, 1, 2, 3, 4, 5]
y1 = [0, 1, 2, 3, 4, 5]
y2 = [0, 2, 4, 6, 8, 10]
fig = plt.figure()
ax1 = fig.add_subplot(231)
ax2 = fig.add_subplot(236)
ax1.plot(x, y1)
ax2.plot(x, y2)
plt.show()
最初のx, y1, y2 は過去のまとめで使っているデータと同様のものです。fig = plt.figure() でグラフを描画するキャンバスのオブジェクトを作っていると考えてください。そのキャンバスを fig とします。次にこのキャンバスに add_subplot() メソッドでグラフ領域 231 に配置するオブジェクトを ax1 とします。同様にグラフ領域 236 に配置するオブジェクトを x2 とします。ax は Axes の意味で matplotlib のコーディングではよく使われます。x軸は x axis なわけですが2次元以上のグラフでは軸が複数あるので axes とするわけです。ここまでデータのグラフの間の関連性は記述されていないことに注意してください。
最後に場所が決まっている ax1 オブジェクトに plot() メソッドにデータ x, y1 を関連付けます。同様に x, y2 も関連付けます。最後に plt.show() で表示します。
これがオブジェクト指向インタフェースを使った方法です。私はこの方法を使うことが多いのですが、他の人の書いたコードを読む際にここまでまとめてきた内容も必要なので今回はこのような順番でまとめていきます。
これからはこのオブジェクト指向インタフェースを使うようにしていきます。
Python でグラフを描く Matplotlib に関するまとめの続きは以下からどうぞ。
では、ごきげんよう。