上下のx軸に度 (角度)とラジアンを表示
コード
解説
はじめに
ここで、紹介する2軸グラフは普通の2軸グラフとは異なる。普通の2軸グラフは2つのスケールの異なるデータを同時に表示するために、左と右の軸をそれぞれ設定し、強引にまとめて表示することである。ここでの2軸グラフは、一つのデータを異なるスケールの軸で表現するグラフである。その詳細を解説する。なお、この機能はmatplotlib 3.1.0の機能であり、今後変更される可能性がある。
モジュールのインポート
図の表示
constrained_layoutをTrueにすることで、ラベルの重なりなどを防ぎ、きれいなグラフにしてくれる。
x,yでcos波データを生成してプロットし、軸ラベルとタイトルの設定もしている。
第2軸の設定
x軸の第2軸はax.secondary_xaxis
()で設定する。’top’はlocationのことであり、上のx軸で第2軸が設定される。functionsで、変換関数と逆変換関数を設定する。ここでは、deg2rad(x)で度からラジアンに変換し、 rad2deg(x)でラジアンから度に変換する関数を定義している。
上下のx軸に周波数と周期を表示
コード
解説
図の表示
ax.loglog(x, y)により、x軸、y軸がともに対数表示となる両対数グラフが表示される。
第2軸の設定
functionsで変換関数と逆変換関数を設定する。ここでは、forward(x)で周波数から周期へ変換し、 inverse(x)でその逆変換を定義している。
x軸が対数表示なので、第2x軸も対数表示となる。
上下のx軸にメートルとフィートを表示
コード
解説
図の表示
第2軸の設定
functionsで変換関数と逆変換関数を設定する。ここでは、mtof(x)でメートルからフィートへ変換し、 ftom(x)でその逆変換を定義している。
上下のx軸に日時と経過時間、左右のy軸に摂氏と華氏を表示
コード
解説
データの生成
datesは2018年1月1日から6時間刻みのデータで、temperatureは20℃にばらつきを加えたデータとなっている。
図の表示
plt.xticks(rotation=70)により、x軸のラベルを傾けて表示している。
第2軸の設定
x軸
functionsで変換関数と逆変換関数を設定する。ここでは、date2yday(x)で日時から最初の時間からの経過時間へと変換し、 yday2date(x)でその逆変換を定義している。
date2numは、日時オブジェクトをMatplotlibの日付に変換するメソッドとなっている。
y軸
functionsで変換関数と逆変換関数を設定する。ここでは、CtoF(x)でセルシウス温度から華氏温度へ変換し、 FtoC(x)でその逆変換を定義している。
locationを’right’とすることで第2y軸を右に表示している。
コードをダウンロード(.pyファイル) コードをダウンロード(.ipynbファイル)
コメント