Matplotlib の共通軸

Beginner

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

はじめに

この実験では、Python の Matplotlib ライブラリを使って共通の軸を持つプロットを作成する方法を学びます。同じスケールで異なるデータセットを比較したい場合、共通の軸は便利です。

VM のヒント

VM の起動が完了したら、左上隅をクリックして ノートブック タブに切り替え、Jupyter Notebook を使って練習しましょう。

時々、Jupyter Notebook が読み込み終わるまで数秒待つ必要がある場合があります。Jupyter Notebook の制限により、操作の検証を自動化することはできません。

学習中に問題に遭遇した場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。

Matplotlib と NumPy ライブラリをインポートする

プロットを作成するには、Matplotlib と NumPy ライブラリをインポートする必要があります。NumPy は、Python プログラミング言語用のライブラリで、大きな多次元配列や行列に対するサポートを追加します。

import matplotlib.pyplot as plt
import numpy as np

プロット用のデータを作成する

可視化するためのプロット用のデータを作成する必要があります。この例では、NumPy を使って 3 つの異なるデータセットを作成します。

t = np.arange(0.01, 5.0, 0.01)
s1 = np.sin(2 * np.pi * t)
s2 = np.exp(-t)
s3 = np.sin(4 * np.pi * t)

サブプロットを作成する

plt.subplot() メソッドを使ってサブプロットを作成できます。この例では、最初のサブプロットが 1 行目と 3 列目を占め、2 番目と 3 番目のサブプロットがそれぞれ 2 行目と 3 行目を占め、1 番目のサブプロットと x 軸を共有する 3 つのサブプロットを作成します。

ax1 = plt.subplot(311)
ax2 = plt.subplot(312, sharex=ax1)
ax3 = plt.subplot(313, sharex=ax1, sharey=ax1)

データをプロットする

これで、plt.plot() メソッドを使って各サブプロットにデータをプロットできます。

ax1.plot(t, s1)
ax2.plot(t, s2)
ax3.plot(t, s3)

目盛りラベルをカスタマイズする

plt.tick_params() メソッドを使って、さまざまな軸の目盛りラベルをカスタマイズできます。この例では、最初のサブプロットの x 軸の目盛りラベルを小さくするようにカスタマイズします。

plt.tick_params('x', labelsize=6)

目盛りラベルを削除する

特定のサブプロットから目盛りラベルを削除するには、ax.get_xticklabels() メソッドを使ってラベルの表示を変更します。この例では、2 番目のサブプロットの x 軸の目盛りラベルを削除します。

plt.tick_params('x', labelbottom=False)

軸の範囲を設定する

plt.xlim() メソッドを使って、各サブプロットの軸の範囲を設定できます。この例では、3 番目のサブプロットの x 軸の範囲を 0.01 から 5.0 に設定します。

plt.xlim(0.01, 5.0)

グラフを表示する

これで、plt.show() メソッドを使ってグラフを表示できます。

plt.show()

まとめ

この実験では、Python の Matplotlib ライブラリを使って共通の軸を持つグラフを作成する方法を学びました。サブプロットを作成し、各サブプロットにデータをプロットし、目盛りラベルをカスタマイズし、目盛りラベルを削除し、軸の範囲を設定し、グラフを表示しました。同じスケールで異なるデータセットを比較したい場合、共通の軸は便利です。