Matplotlib オブジェクト指向なグラフ作成

Matplotlib オブジェクト指向なグラフ作成#

※記事内に商品プロモーションを含むことがあります。

公開日

Matplotlibにおけるグラフの作成方法として、オブジェクト指向な方法とMATLAB風の方法があります。MATLABとは、Mathworks社が開発している数値解析ソフトです。この記事では、両者の方法を比較します。

オブジェクト指向な方法には、グラフの細かい調整がしやすという利点があります。そのため、当サイトでは基本的にこの方法を扱っています。一方、MATLABに親しんでいる人にとっては、MATLAB風の方法が取っつきやすいと思います。

オブジェクト指向な方法#

オブジェクト指向なグラフの作成方法の一例を以下に示します。

import matplotlib.pyplot as plt

fig, ax = plt.subplots()
ax.plot([1, 3, 2])
ax.set_xlabel("x lable")
fig.suptitle("Figure title")
plt.show()
../_images/592fc8ecc177df2012ded7cf1615383cf1852043a00d3bdd8d6c2962ae05f27b.png

plt.subplots()fig(グラフ全体)、ax(グラフを描画する部分)を作成しています。さらに、ax.set_xlabel("x lable")axにx軸のラベルを追加し、fig.suptitle("Figure title")figにタイトルを追加しています。このように、調整している内容が分かりやすいことが、オブジェクト指向な方法の長所です。

MATLAB風な方法#

上記と同じグラフをMATLAB風な方法で作成します。基本的にpltのメソッドを用います。

plt.plot([1, 3, 2])
plt.xlabel("x lable")
plt.suptitle("Figure title")
plt.show()
../_images/592fc8ecc177df2012ded7cf1615383cf1852043a00d3bdd8d6c2962ae05f27b.png

オブジェクト指向な方法と比べて簡潔な記述になります。一方、調整している対象を明示していないため、微調整を行うことは難しくなります。

ちなみに、MATLABで同じグラフを作成する場合、以下のようになります。

plot([1 3 2]);
xlabel(`x lable`);
suptitle(`Figure title`);