matplotlib: 2つのグラフを一度に描画する
複数のグラフを表示する
- 1つまたは2つのファイルから2種類のデータを描画する
- 縦軸が共通の場合と、異なる場合
例えば以下のようなデータが data.csv という名称で存在するとする。
id,value1,value2
1,0.5,10.4
2,5.4,30.9
3,7.9,80.9
4,10.2,140.9
5,13.2,221.3
同じ軸でプロットしてみる。単に2発Plotすればいいだけ。
こちらの記事も参照
import pandas as pd
import matplotlib.pyplot as plt
df= pd.read_csv('data.csv', header=0, index_col=0)
plt.plot(df.index, df['value1'], marker='o')
plt.plot(df.index, df['value2'], marker='x')
plt.show()
簡単に表示はできるが、異なるスケールであるため青色のプロットの変化が見づらくなってしまっている。
このようにスケールが異なる場合には縦軸を変更すると良い。
# サブプロット (分割プロット) コマンドで軸を取得
fig, ax1 = plt.subplots()
# ax1 と Xが共通な軸 = y軸を作成
ax2 = ax1.twinx()
# ax1, ax2に対してプロットを実施
# 区別をつけるために色分け、凡例を出すためにlabelを指定。
ax1.plot(df.index, df['value1'], color='red', label='1st line')
ax2.plot(df.index, df['value2'], color='blue', label='2nd line')
# 各Y軸に表示するラベルを指定。
ax1.set_ylabel('value1')
ax2.set_ylabel('value2')
# 凡例 (legend) の表示
fig.legend()
plt.show()
コメント
コメントを投稿