【Matplotlib】twinx()で独立したY軸スケールの複数プロットを重ねて表示する方法
Matplotlibでは、twinx()メソッドを利用することで、X軸を共有しながらY軸ごとに独立したスケール(目盛り)を持つ複数のプロットを、1つの図に重ねて表示できます。単位が異なるデータや桁違いの値を同じグラフ上で比較したい場合に非常に便利な手法です。
実装手順
- 図のサイズを設定し、サブプロット間および周囲の余白を自動調整します。
- subplots()メソッドで図(Figure)とサブプロット(Axes)を作成します。
- 1つ目の軸(ax1)に対してplot()メソッドでデータポイントをプロットします。
- twinx()メソッドで、X軸を共有する新しいY軸(ax2)を作成します。
- 2つ目の軸(ax2)に対してもplot()メソッドでデータポイントをプロットします。
- show()メソッドで図を表示します。
コード例
import matplotlib.pyplot as plt plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True fig, ax1 = plt.subplots() ax1.plot([1, 2, 3, 4, 5], color='red') ax2 = ax1.twinx() ax2.plot([11, 12, 31, 41, 15], color='blue') plt.show()
このコードでは、赤色の線は左側のY軸のスケールに従って描画され、青色の線は右側のY軸のスケールに従って描画されます。両方のプロットがX軸を共有しているため、同じX座標上で2つのデータ系列を直接比較できるのが大きなメリットです。
出力結果

-
Matplotlibで複数のX軸・Y軸をプロットする方法(twinx / twinyの使い方)
データ分析や可視化では、スケールの異なる2つのデータ系列を同じグラフ上に重ねて表示したいケースがよくあります。Matplotlibでは、twinx() メソッドや twiny() メソッドを使うことで、X軸またはY軸を共有しながら独立したもう一方の軸を持つグラフを簡単に作成できます。 この記事では、左右に異なるY軸を持つグラフを作成する手順を、具体的なコード例とともに解説します。 複数のY軸を持つグラフの作成手順 以下の手順で、左と右に別々のY軸スケールを持つプロットを作成できます。 subplots() メソッドを使用して、図(figure)とサブプロット(axes)を作成します。 最初の
-
Matplotlibで任意のデータを使って4Dプロットを作成する方法
Matplotlibでは、x・y・z の3つの座標データに加え、c(色) を第4の次元として割り当てることで、いわゆる「4Dプロット」を実現できます。これは実際には3D散布図にカラーマップを組み合わせたものであり、点の位置が3次元情報を、色がもう1つの変数を表現します。以下の手順に従うことで、標準正規分布に従うランダムなデータポイントを使った4Dプロットを簡単に作成できます。手順figure() メソッドを使用して、新しい図を作成するか、既存の図をアクティブ化します。サブプロット構成の一部として、3D投影(projection=3d)を指定した Axes を追加します。NumPy を使って x