Python
 Computer >> コンピューター >  >> プログラミング >> Python

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() を実行すると、次のような出力が得られます。

Matplotlib入門:plt.subplots()とplt.figure()の違いをわかりやすく解説

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

Matplotlib入門:plt.subplots()とplt.figure()の違いをわかりやすく解説

どちらを使うべきか?

単一のシンプルなグラフを描くだけであれば、plt.subplots() の利用がおすすめです。FigureオブジェクトとAxesオブジェクトを同時に受け取れるため、その後のグラフ操作やカスタマイズが格段に行いやすくなります。

対照的に、複数の独立したウィンドウで図を管理したい場合や、Figureの状態をより細かく制御したい場面では、plt.figure() の方が適しています。用途に応じて使い分けることで、Matplotlibでの可視化作業をより効率的に進められるでしょう。

  1. NumPyとMatplotlibで画像セグメンテーションをオーバーレイ表示する方法

    NumPyとMatplotlibを組み合わせると、画像セグメンテーションの結果を元画像の上に重ねて(オーバーレイ)表示できます。マスク配列を活用すれば、検出した領域だけを色付きで半透明に強調することが可能です。 実装の手順 10×10のサイズを持つマスク配列を作成します。 一部の領域(中央部分)の値を1に更新します。 NumPyを使って画像データを生成します。 条件を満たす要素をマスクし、マスク済みデータを作成します。 figure()メソッドで新しい図を作成、または既存の図をアクティブ化します。 imshow()メソッドでデータを2次元ラスタ画像として表示します。 show()メソッドで図

  2. Matplotlibの図に凡例を配置・整列させる方法

    Matplotlibで作成した図(フィギュア)に凡例を適切な位置に配置し、要素を整列させる方法を解説します。凡例の位置調整には bbox_to_anchor 引数を使用するのがポイントです。 手順 plot() メソッドを使って line1 と line2 の2本の線をプロットします。 legend() メソッドで図に凡例を配置します。このとき bbox_to_anchor を使って凡例の位置を指定し、ncol 引数で凡例要素を横並びに整列させます。 show() メソッドを呼び出して図を表示します。 コード例 from matplotlib import pyplot as plt pl