Matplotlib の軸方向のカスタマイズ

PythonPythonBeginner
今すぐ練習

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

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

はじめに

Matplotlibは、Pythonにおける人気のあるデータ可視化ライブラリです。これは、グラフやチャートのカスタマイズに幅広いオプションを提供します。この実験では、mpl_toolkits.axisartistモジュールを使用してMatplotlibにおける軸の方向を設定する方法を探ります。

VMのヒント

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

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

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

ライブラリのインポート

始める前に、必要なライブラリをインポートする必要があります。この実験では、matplotlib.pyplotmpl_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. サブプロット1:軸の方向が左に設定されています。
  2. サブプロット2:軸のラベルの方向が正に設定されています。
  3. サブプロット3:軸のラベルの方向が負に設定されています。
  4. サブプロット4:目盛りのラベルの方向が正に設定されています。
  5. サブプロット5:目盛りのラベルの方向が負に設定されています。

まとめ

この実験では、mpl_toolkits.axisartist モジュールを使用して Matplotlib で軸の方向を設定する方法を学びました。グラフの軸を設定する関数を作成し、複数のサブプロットを使用して異なる軸の方向を示しました。これは、Matplotlib でのグラフやチャートのカスタマイズに役立つツールです。