はじめに
Matplotlib は、Python における人気のあるデータ可視化ライブラリです。これは、グラフやチャートのカスタマイズに幅広いオプションを提供します。この実験では、mpl_toolkits.axisartistモジュールを使用して Matplotlib における軸の方向を設定する方法を探ります。
VM のヒント
VM の起動が完了したら、左上隅をクリックしてノートブックタブに切り替え、Jupyter Notebook を使って練習しましょう。
時々、Jupyter Notebook が読み込み終了するまで数秒待つ必要がある場合があります。Jupyter Notebook の制限により、操作の検証を自動化することはできません。
学習中に問題に直面した場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。
ライブラリのインポート
始める前に、必要なライブラリをインポートする必要があります。この実験では、matplotlib.pyplot と mpl_toolkits.axisartist を使用します。
import matplotlib.pyplot as plt
import mpl_toolkits.axisartist as axisartist
軸を設定する関数を作成する
グラフの軸を設定するための setup_axes という関数を作成します。この関数は 2 つのパラメータを受け取り、fig オブジェクトと pos オブジェクトです。fig オブジェクトはグラフを描画するための figure オブジェクトであり、pos オブジェクトは figure 内のサブプロットの位置です。
def setup_axes(fig, pos):
ax = fig.add_subplot(pos, axes_class=axisartist.Axes)
ax.set_ylim(-0.1, 1.5)
ax.set_yticks([0, 1])
ax.axis[:].set_visible(False)
ax.axis["x"] = ax.new_floating_axis(1, 0.5)
ax.axis["x"].set_axisline_style("->", size=1.5)
return ax
軸の方向を設定する
ここでは、figure オブジェクトを作成して、グラフの軸の方向を設定します。異なる軸の方向を示すために 5 つの異なるサブプロットを作成します。
plt.rcParams.update({
"axes.titlesize": "medium",
"axes.titley": 1.1,
})
fig = plt.figure(figsize=(10, 4))
fig.subplots_adjust(bottom=0.1, top=0.9, left=0.05, right=0.95)
ax1 = setup_axes(fig, 251)
ax1.axis["x"].set_axis_direction("left")
ax2 = setup_axes(fig, 252)
ax2.axis["x"].label.set_text("Label")
ax2.axis["x"].toggle(ticklabels=False)
ax2.axis["x"].set_axislabel_direction("+")
ax2.set_title("label direction=$+$")
ax3 = setup_axes(fig, 253)
ax3.axis["x"].label.set_text("Label")
ax3.axis["x"].toggle(ticklabels=False)
ax3.axis["x"].set_axislabel_direction("-")
ax3.set_title("label direction=$-$")
ax4 = setup_axes(fig, 254)
ax4.axis["x"].set_ticklabel_direction("+")
ax4.set_title("ticklabel direction=$+$")
ax5 = setup_axes(fig, 255)
ax5.axis["x"].set_ticklabel_direction("-")
ax5.set_title("ticklabel direction=$-$")
ax7 = setup_axes(fig, 257)
ax7.axis["x"].label.set_text("rotation=10")
ax7.axis["x"].label.set_rotation(10)
ax7.axis["x"].toggle(ticklabels=False)
ax8 = setup_axes(fig, 258)
ax8.axis["x"].set_axislabel_direction("-")
ax8.axis["x"].label.set_text("rotation=10")
ax8.axis["x"].label.set_rotation(10)
ax8.axis["x"].toggle(ticklabels=False)
plt.show()
結果の解釈
コードは、異なる軸の方向を示す 5 つのサブプロット付きの figure を生成します。以下はサブプロットの概要です。
- サブプロット 1:軸の方向が左に設定されています。
- サブプロット 2:軸のラベルの方向が正に設定されています。
- サブプロット 3:軸のラベルの方向が負に設定されています。
- サブプロット 4:目盛りのラベルの方向が正に設定されています。
- サブプロット 5:目盛りのラベルの方向が負に設定されています。
まとめ
この実験では、mpl_toolkits.axisartist モジュールを使用して Matplotlib で軸の方向を設定する方法を学びました。グラフの軸を設定する関数を作成し、複数のサブプロットを使用して異なる軸の方向を示しました。これは、Matplotlib でのグラフやチャートのカスタマイズに役立つツールです。