\

PythonのデータビジュアライゼーションライブラリであるMatplotlibを使用して、第2軸を持つグラフを作成する方法について説明します。

第2軸を持つグラフの作成

import numpy as np
import matplotlib.pyplot as plt

# figure()でグラフを描画する領域を確保,figというオブジェクトにする.
fig = plt.figure()

# add_subplot()でグラフを描画する領域を追加する.引数は行,列,場所
ax1 = fig.add_subplot(1, 1, 1)
ax2 = ax1.twinx()  # x軸を共有

t = np.linspace(0, 10, 1000)
y1 = np.sin(t)
y2 = 10*np.cos(t)

c1, c2 = "blue", "red"  # 各プロットの色
l1, l2 = "sin", "10cos"  # 各ラベル

# 1つ目のグラフを描画
ax1.set_xlabel('t')  # x軸ラベル
ax1.set_title(r"$\sin(x)$ and 10$\cos(x)$")  # グラフタイトル
ax1.grid()  # 罫線
ax1.plot(t, y1, color=c1, label=l1)
h1, l1 = ax1.get_legend_handles_labels()

# 2つ目のグラフを描画
ax2.plot(t, y2, color=c2, label=l2)
h2, l2 = ax2.get_legend_handles_labels()

ax1.legend(h1+h2, l1+l2, loc='upper right')  # ax1とax2の凡例のhandlerとlabelのリストを結合

plt.show()

このコードは、sin(x)10cos(x)の2つの関数を同じグラフ上に描画しますが、それぞれ異なるy軸を使用します。これにより、スケールが大きく異なる2つのデータセットを比較することが可能になります。

参考文献

Qiita, “【matplotlib基礎】第2軸を持つグラフを描画する #Python”
Qiita, “[Python]matplotlibで左右に2つの軸があるグラフを書く方法”.

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です