Matplotlib入門:plt.subplots()とplt.figure()の違いをわかりやすく解説
plt.figure()とplt.subplots()の基本的な違い
plt.figure() は、新しい図(Figure)を作成するか、すでに存在する図をアクティブにして返すメソッドです。
一方、plt.subplots() は、図(Figure)とサブプロット(Axes)のセットを一度にまとめて作成できる便利なメソッドです。
それでは、実際のコード例を見ながら、plt.subplots() と plt.figure() の違いを具体的に理解していきましょう。
確認手順
- 図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。
- plt.figure() メソッドを使って、新しい図を作成(または既存の図をアクティブ化)します。
- plt.subplots() メソッドを使って、図とサブプロットのセットを作成します。
- show() メソッドで図を画面に表示します。
コード例
from matplotlib import pyplot as plt
# 図のサイズを設定
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
# plt.figure を使って新しい図を作成
fig1 = plt.figure("Figure 1 - plt.figure")
# plt.subplots を使って図とサブプロットのセットを作成
fig2, ax = plt.subplots()
plt.title("Figure 2 - plt.subplots")
# グラフを表示
plt.show()
出力結果
plt.figure() を実行すると、次のような出力が得られます。

一方、plt.subplots() を実行すると、次のような出力が得られます。

どちらを使うべきか?
単一のシンプルなグラフを描くだけであれば、plt.subplots() の利用がおすすめです。FigureオブジェクトとAxesオブジェクトを同時に受け取れるため、その後のグラフ操作やカスタマイズが格段に行いやすくなります。
対照的に、複数の独立したウィンドウで図を管理したい場合や、Figureの状態をより細かく制御したい場面では、plt.figure() の方が適しています。用途に応じて使い分けることで、Matplotlibでの可視化作業をより効率的に進められるでしょう。
-
NumPyとMatplotlibで画像セグメンテーションをオーバーレイ表示する方法
NumPyとMatplotlibを組み合わせると、画像セグメンテーションの結果を元画像の上に重ねて(オーバーレイ)表示できます。マスク配列を活用すれば、検出した領域だけを色付きで半透明に強調することが可能です。 実装の手順 10×10のサイズを持つマスク配列を作成します。 一部の領域(中央部分)の値を1に更新します。 NumPyを使って画像データを生成します。 条件を満たす要素をマスクし、マスク済みデータを作成します。 figure()メソッドで新しい図を作成、または既存の図をアクティブ化します。 imshow()メソッドでデータを2次元ラスタ画像として表示します。 show()メソッドで図
-
Matplotlibの図に凡例を配置・整列させる方法
Matplotlibで作成した図(フィギュア)に凡例を適切な位置に配置し、要素を整列させる方法を解説します。凡例の位置調整には bbox_to_anchor 引数を使用するのがポイントです。 手順 plot() メソッドを使って line1 と line2 の2本の線をプロットします。 legend() メソッドで図に凡例を配置します。このとき bbox_to_anchor を使って凡例の位置を指定し、ncol 引数で凡例要素を横並びに整列させます。 show() メソッドを呼び出して図を表示します。 コード例 from matplotlib import pyplot as plt pl