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