Matplotlib を使って 2 軸グラフを作成する

PythonPythonBeginner
今すぐ練習

This tutorial is from open-source community. Access the source code

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

このチュートリアルでは、データ可視化に使用される 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を使ってグラフを表示しました。