はじめに
このチュートリアルでは、データ可視化に使用される Python ライブラリである Matplotlib を使って簡単なグラフを作成する手順を案内します。2 つの y 軸を持つグラフを作成するために、host_subplotモジュールを使用します。
VM のヒント
VM の起動が完了したら、左上隅をクリックしてノートブックタブに切り替え、Jupyter Notebook を使って練習しましょう。
時々、Jupyter Notebook が読み込み終了するまで数秒待つ必要がある場合があります。Jupyter Notebook の制限により、操作の検証を自動化することはできません。
学習中に問題に遭遇した場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。
必要なモジュールをインポートする
まず最初に、グラフを作成するために必要なモジュールをインポートします。x と y のデータを生成するためにnumpyを、グラフを作成するためにmatplotlib.pyplotを、2 番目の y 軸を作成するためにmpl_toolkits.axes_grid1を使用します。
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.axes_grid1 import host_subplot
データを生成する
次に、x と y のデータを生成する必要があります。この例では正弦波を生成します。
xx = np.arange(0, 2*np.pi, 0.01)
yy = np.sin(xx)
グラフを作成する
これで、host_subplot関数を使ってグラフを作成できます。この関数は 2 つの y 軸を持つサブプロットを作成します。
ax = host_subplot(111)
ax.plot(xx, yy)
2 番目の y 軸を作成する
2 番目の y 軸を作成するには、twin関数を使って新しい軸オブジェクトを作成する必要があります。
ax2 = ax.twin()
2 番目の y 軸の目盛りラベルを設定する
2 番目の y 軸の目盛りラベルを設定するには、set_xticks関数を使って、目盛りの位置とラベルを引数として渡します。
ax2.set_xticks([0.,.5*np.pi, np.pi, 1.5*np.pi, 2*np.pi],
labels=["$0$", r"$\frac{1}{2}\pi$",
r"$\pi$", r"$\frac{3}{2}\pi$", r"$2\pi$"])
右側の y 軸の目盛りラベルを非表示にする
右側の y 軸の目盛りラベルを非表示にするには、major_ticklabels.set_visible関数を使います。
ax2.axis["right"].major_ticklabels.set_visible(False)
上側の y 軸の目盛りラベルを表示する
同じmajor_ticklabels.set_visible関数を使って、上側の y 軸の目盛りラベルを表示することができます。
ax2.axis["top"].major_ticklabels.set_visible(True)
グラフを表示する
最後に、show関数を使ってグラフを表示することができます。
plt.show()
まとめ
このチュートリアルでは、Matplotlib を使って 2 つの y 軸を持つ単純なグラフを作成する方法を学びました。グラフを作成するためにhost_subplotモジュールを使い、2 番目の y 軸を作成するためにmpl_toolkits.axes_grid1モジュールを使いました。データはnumpyを使って生成し、matplotlib.pyplotを使ってグラフを表示しました。