Matplotlibで複数のY軸を作成する方法

この記事では、Pythonのデータ可視化ライブラリであるMatplotlibを使って、一つのグラフに複数のY軸を持つグラフを作成する方法について詳しく解説します。具体的なコード例、その詳細な解説、および応用例を2つを含めています。

目次

はじめに

データ可視化は、分析や報告の際に非常に重要な工程です。特に、複数の変数を一度に観察したい場合、一つのグラフに複数のY軸を持つことで、その全体像をより明確に把握することができます。

基本的なY軸の追加方法

Matplotlibには、`twinx()`関数を使用して新しいY軸を簡単に追加する方法があります。以下はその基本的な例です。

基本コード

import matplotlib.pyplot as plt
import numpy as np

# データ生成
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

# 1つ目のY軸のプロット
fig, ax1 = plt.subplots()
ax1.plot(x, y1, 'b-', label='sin(x)')
ax1.set_xlabel('X')
ax1.set_ylabel('sin(x)', color='b')

# 2つ目のY軸のプロット
ax2 = ax1.twinx()
ax2.plot(x, y2, 'r-', label='cos(x)')
ax2.set_ylabel('cos(x)', color='r')

plt.show()

コードの解説

– `plt.subplots()`:新しいフィギュアとサブプロット(ここではax1)を作成します。
– `twinx()`:新しいY軸(ax2)を作成します。この新しいY軸は、既存のY軸(ax1)とX軸を共有します。
– `set_xlabel()`、`set_ylabel()`:X軸、Y軸のラベルを設定します。
– `plot()`:データをプロットします。

応用例

例1: グリッドと凡例の追加

グリッドと凡例を追加することで、グラフをより見やすくできます。

# 1つ目のY軸のプロット
fig, ax1 = plt.subplots()
ax1.plot(x, y1, 'b-', label='sin(x)')
ax1.set_xlabel('X')
ax1.set_ylabel('sin(x)', color='b')
ax1.legend(loc='upper left')
ax1.grid(True)

# 2つ目のY軸のプロット
ax2 = ax1.twinx()
ax2.plot(x, y2, 'r-', label='cos(x)')
ax2.set_ylabel('cos(x)', color='r')
ax2.legend(loc='upper right')

plt.show()

例2: グラフのスタイル変更

Matplotlibでは、線の種類やマーカー、線の太さなど、多くのスタイリングオプションが用意されています。

# 1つ目のY軸のプロット
fig, ax1 = plt.subplots()
ax1.plot(x, y1, 'b--', linewidth=2, label='sin(x)')
ax1.set_xlabel('X')
ax1.set_ylabel('sin(x)', color='b')

# 2つ目のY軸のプロット
ax2 = ax1.twinx()
ax2.plot(x, y2, 'r-.', linewidth=3, label='cos(x)')
ax2.set_ylabel('cos(x)', color='r')

plt.show()

まとめ

Matplotlibを用いて、一つのグラフに複数のY軸を持つグラフを作成する方法とその応用について解説しました。基本的なコードは非常に簡単であり、多くのカスタマイズオプションも提供されていますので、複雑なデータセットに対しても十分に対応可能です。

コメント

コメントする

目次