Axisartist を使ったカスタムなスパイン

Beginner

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

はじめに

このチュートリアルでは、Matplotlib ライブラリを使って特定の位置にカスタムなスパインを作成する方法を紹介します。

VM のヒント

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

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

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

ライブラリのインポート

まず、このチュートリアルで必要なライブラリをインポートします。Matplotlib と NumPy を使用します。

import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits import axisartist

グラフとサブプロットの作成

add_gridspec メソッドを使って、2 つのサブプロット付きのグラフを作成します。

fig = plt.figure(figsize=(6, 3), layout="constrained")
gs = fig.add_gridspec(1, 2)

サブプロット 1 を作成する

最初のサブプロットでは、axisartist.Axes を使って y = 0 を通る新しい軸を作成します。また、他のスパインを非表示にします。

ax0 = fig.add_subplot(gs[0, 0], axes_class=axisartist.Axes)
ax0.axis["y=0"] = ax0.new_floating_axis(nth_coord=0, value=0, axis_direction="bottom")
ax0.axis["y=0"].toggle(all=True)
ax0.axis["y=0"].label.set_text("y = 0")
ax0.axis["bottom", "top", "right"].set_visible(False)

サブプロット 2 を作成する

2 番目のサブプロットでは、axisartist.axislines.AxesZero を使って xzero 軸と yzero 軸を自動的に作成します。他のスパインを非表示にし、xzero 軸を表示に設定します。

ax1 = fig.add_subplot(gs[0, 1], axes_class=axisartist.axislines.AxesZero)
ax1.axis["xzero"].set_visible(True)
ax1.axis["xzero"].label.set_text("Axis Zero")
ax1.axis["bottom", "top", "right"].set_visible(False)

データをプロットする

サブプロットを作成したので、np.sin(x) を使ってデータをプロットできます。

x = np.arange(0, 2*np.pi, 0.01)
ax0.plot(x, np.sin(x))
ax1.plot(x, np.sin(x))

グラフを表示する

最後に、plt.show() を使ってグラフを表示できます。

plt.show()

まとめ

このチュートリアルでは、Matplotlib ライブラリを使って特定の位置にカスタムなスパインを作成する方法を学びました。2 つのサブプロット付きのグラフを作成し、axisartist.Axesaxisartist.axislines.AxesZero を使ってスパインを作成しました。また、他のスパインを非表示にし、xzero 軸を表示に設定しました。最後に、データをプロットしてグラフを表示しました。