[matplotlib] 34. スケールの異なるデータをまとめて表示するための2軸グラフ(twinx)

matplotlib

はじめに

ここでは、2つのスケールの異なるデータを同時に表示するために、左と右の軸をそれぞれ設定し、強引にまとめて表示した例について解説する。

コード

解説

モジュールのインポート

データの生成

data1はマイナスの指数関数であるため、tの増加に伴い大きく低下する。
dara2はcos波なので、データの範囲は-1〜1となり、data1とdata2の差はtの増加に伴って大きくなる。
これを同じy軸上に表示すると下のようになる。
軸のスケールが大きいため、cos波であるにもかかわらず、直線となってしまう。

図の表示

data1は通常のプロットと同様に表示する。
color の ‘tab:orange’はTableau Colorsという種類の色の名前のことである。
plotとラベルと目盛りの色を同一にすることで、プロットしたデータが左の第1軸のデータであることを示せる。

第2軸の設定

第2軸をax2としてax1の第2軸にするには、ax2 = ax1.twinx() とする。
ax2はaxesオブジェクトなので、ax1と同じように軸ラベル、目盛りなどを設定できる。
ここでは、第2軸に関連する色を’tab:green’で表示している。

x軸の設定

x軸に関連する色は’tab:purple’とした。

コードをダウンロード(.pyファイル)

コードをダウンロード(.pyファイル)

参考

matplotlib.axes.Axes.twinx — Matplotlib 3.1.0 documentation
Specifying Colors — Matplotlib 2.0.2 documentation

コメント