matplotlibで1つの図にだけローカルなrcParamsを設定する方法
matplotlibでは、グローバルな rcParams を変更するとすべての図に設定が反映されますが、特定の1つの図にだけ異なるスタイルを適用したいケースはよくあります。そんなときに便利なのが plt.rc_context() です。このコンテキストマネージャーを使えば、with ブロック内でのみ rcParams を一時的に変更でき、ブロックを抜ければ元の設定に自動的に戻ります。
手順
- 図のサイズを設定し、サブプロット間および周囲の余白を調整します。
- サンプルデータの個数を格納する変数 N を初期化します。
- numpy を使って x と y のデータポイントを作成します。
plt.rc_context()により、rcParams を一時的に変更するコンテキストマネージャーを取得します。- 現在の図にインデックス1の位置へサブプロットを追加します。
plot()メソッドで x と y のデータポイントをプロットします。- 現在の図にインデックス2の位置へサブプロットを追加します。
plot()メソッドで x と y のデータポイントをプロットします。show()メソッドで図を表示します。
コード例
import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
N = 10
x = np.random.rand(N)
y = np.random.rand(N)
# rc_context 内でのみ設定が有効になる
with plt.rc_context({"axes.grid": True, "grid.linewidth": 0.75, "lines.linestyle": 'dashed'}):
plt.subplot(121)
plt.plot(x, y)
# コンテキスト外では元の設定で描画される
plt.subplot(122)
plt.plot(x, y)
plt.show()
解説
このコードでは、左側のサブプロット(インデックス121)は rc_context の中で描画されているため、グリッドが表示され、破線(dashed)のスタイルでプロットされます。一方、右側のサブプロット(インデックス122)はコンテキストの外で描画されているため、デフォルトのスタイル(グリッドなし・実線)になります。
このように plt.rc_context() を使うことで、グローバル設定を汚すことなく、図やサブプロット単位でスタイルを柔軟に切り替えられます。複数の図で異なるテーマを使い分けたい場合や、既存コードの設定に影響を与えたくない場合に特に有効です。
出力結果
上記のコードを実行すると、次のような出力が得られます。

-
MatplotlibでRectangle(長方形)に色を設定する方法
Matplotlibで長方形(Rectangle)に色を設定するには、以下の手順に従います。手順figure() メソッドを使用して、新しい図(Figure)を作成するか、既存の図をアクティブにします。add_subplot() メソッドを使用して、サブプロット構成の一部として図に ~.axes.Axes を追加します。長方形は、アンカーポイント(基準座標)と幅・高さを指定することで定義できます。作成したRectangleパッチを add_patch() でプロットに追加します。xlim() および ylim() メソッドを使用して、x軸とy軸の表示範囲を設定します。図を表示するには、show
-
【Python】MatplotlibでX軸の値(目盛りラベル)を設定する方法
Python の Matplotlib でグラフの X 軸の値(目盛りラベル)を自由に設定したい場合は、plt.xticks() メソッドを使うのが最も簡単です。以下の手順で実装できます。 X軸の値を設定する手順 x と y のデータポイントを格納する2つのリストを作成します。 range(len(x)) を使って、目盛りの基準となるインデックス(xticks の範囲)を取得します。 plot() メソッドで、インデックスのリストと y データを使って折れ線グラフを描画します。 xticks() メソッドを使い、デフォルトの目盛りを実際の X 軸の値に置き換えます。 show() メソッドで