上下のx軸に度 (角度)とラジアンを表示
コード

解説
はじめに
ここで紹介する2軸グラフは、一般的な2軸グラフとは異なります。通常の2軸グラフは、スケールの異なる2つのデータを同時に表示するために左右の軸をそれぞれ設定し、1つのグラフにまとめるものです。一方、この記事で説明する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’に設定することで、第2のy軸をグラフの右側に表示しています。
コードをダウンロード(.pyファイル) コードをダウンロード(.ipynbファイル)
コメント