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

Matplotlibでサブプロット間の「sharex」「sharey」による軸の共有を解除する方法

Matplotlibで複数のサブプロットを作成する際、X軸やY軸が共有された状態になっていることがあります。この共有設定を解除したい場合は、plt.subplots() の引数 sharex および sharey'none'(または False)を指定します。

こうすることで、各サブプロットのX軸・Y軸はそれぞれ独立したスケールを持ち、個別に自動調整されるようになります。

実装の手順

  • 図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。
  • 行数 rows と列数 cols の2つの変数を初期化します。
  • plt.subplots() を使って、図とサブプロットのセットを作成します。このとき sharex='none'sharey='none' を指定して軸の共有を無効化します。
  • rows=2cols=4 として、すべてのaxesを反復処理します。
  • 各軸にランダムなデータをプロットします。
  • show() メソッドを呼び出して図を表示します。

サンプルコード

import matplotlib.pyplot as plt
import numpy as np

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

rows = 2
cols = 4

fig, axes = plt.subplots(rows, cols, sharex='none', sharey='none', squeeze=False)

for row in range(rows):
    for col in range(cols):
        axes[row][col].plot(np.random.rand(10), np.random.rand(10))

plt.show()

実行結果

上記のコードを実行すると、8つのサブプロットがそれぞれ独立したX軸・Y軸を持つ図が出力されます。各プロットはランダムデータを使用しているため、軸の範囲もプロットごとに異なることを確認できます。

補足:軸の共有設定について

plt.subplots() のデフォルト値は sharex=Falsesharey=False であり、これは 'none' と同等です。つまり、特別な指定をしなければ軸は共有されません。

一方、sharex=Truesharex='col' などで共有を有効にして作成した図の軸共有は、後から簡単に解除することができません。そのため、状況に応じて柔軟に軸を扱いたい場合は、作成時点で 'none' を明示的に指定しておくのが確実です。

  1. MatplotlibでRectangle(長方形)に色を設定する方法

    Matplotlibで長方形(Rectangle)に色を設定するには、以下の手順に従います。手順figure() メソッドを使用して、新しい図(Figure)を作成するか、既存の図をアクティブにします。add_subplot() メソッドを使用して、サブプロット構成の一部として図に ~.axes.Axes を追加します。長方形は、アンカーポイント(基準座標)と幅・高さを指定することで定義できます。作成したRectangleパッチを add_patch() でプロットに追加します。xlim() および ylim() メソッドを使用して、x軸とy軸の表示範囲を設定します。図を表示するには、show

  2. Seabornで2つのグラフを横に並べてプロットする方法(Matplotlib)

    データ分析では、複数のグラフを1つの図の中に並べて比較できると非常に便利です。この記事では、SeabornとMatplotlibを組み合わせて、2つのグラフを横並び(1行2列)で表示する方法を解説します。 実装の流れ 2つのグラフを並べて描画するには、以下の手順を実行します。 plt.subplots(1, 2) を使い、figureサイズ(7, 7)で1行2列のサブプロットを作成します。 Pandasを使って、col1 と col2 のキーを持つデータフレームを作成します。 countplot() メソッドを使用し、カテゴリごとの観測値の件数を棒グラフで可視化します。 subplots_a