デモ:寄生虫軸

PythonPythonBeginner
今すぐ練習

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

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

はじめに

この実験では、Matplotlibのmpl_toolkits.axes_grid1.parasite_axes.HostAxesmpl_toolkits.axes_grid1.parasite_axes.ParasiteAxesモジュールを使って寄生虫軸を作成する方法を学びます。寄生虫軸は、ホスト軸とxスケールを共有しますが、y方向には異なるスケールを表示します。

VMのヒント

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

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

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

必要なライブラリをインポートする

まず、必要なライブラリをインポートする必要があります。この実験では、グラフ描画にmatplotlib.pyplotを、寄生虫軸を作成するためにmpl_toolkits.axes_grid1.parasite_axes.HostAxesmpl_toolkits.axes_grid1.parasite_axes.ParasiteAxesを使用します。

import matplotlib.pyplot as plt
from mpl_toolkits.axisartist.parasite_axes import HostAxes

グラフを作成してホスト軸を追加する

plt.figure()メソッドを使ってグラフを作成し、fig.add_axes()メソッドを使ってホスト軸を追加します。ホスト軸は寄生虫軸とxスケールを共有します。

fig = plt.figure()
host = fig.add_axes([0.15, 0.1, 0.65, 0.8], axes_class=HostAxes)

寄生虫軸を作成する

host.get_aux_axes()メソッドを使って2つの寄生虫軸を作成します。viewlim_mode=Noneを設定して、寄生虫軸がホスト軸と同じxスケールを共有することを確認します。また、sharex=hostを設定して、xスケールが共有されることを確認します。

par1 = host.get_aux_axes(viewlim_mode=None, sharex=host)
par2 = host.get_aux_axes(viewlim_mode=None, sharex=host)

ホスト軸の右側のy軸を非表示にする

host.axis["right"].set_visible(False)メソッドを使って、ホスト軸の右側のy軸を非表示にします。

host.axis["right"].set_visible(False)

寄生虫軸1の右側のy軸を表示する

par1.axis["right"].set_visible(True)メソッドを使って、最初の寄生虫軸の右側のy軸を表示します。また、右側のy軸の目盛りラベルとラベルを表示するために、par1.axis["right"].major_ticklabels.set_visible(True)par1.axis["right"].label.set_visible(True)も設定します。

par1.axis["right"].set_visible(True)
par1.axis["right"].major_ticklabels.set_visible(True)
par1.axis["right"].label.set_visible(True)

寄生虫軸2に右側のy軸を追加する

par2.axis["right2"] = par2.new_fixed_axis(loc="right", offset=(60, 0))メソッドを使って、2番目の寄生虫軸に右側のy軸を追加します。

par2.axis["right2"] = par2.new_fixed_axis(loc="right", offset=(60, 0))

すべての軸にデータをプロットする

plot()メソッドを使って、すべての軸にデータをプロットします。また、set()メソッドを使って、すべての軸のラベルと制限を設定します。

p1, = host.plot([0, 1, 2], [0, 1, 2], label="Density")
p2, = par1.plot([0, 1, 2], [0, 3, 2], label="Temperature")
p3, = par2.plot([0, 1, 2], [50, 30, 15], label="Velocity")

host.set(xlim=(0, 2), ylim=(0, 2), xlabel="Distance", ylabel="Density")
par1.set(ylim=(0, 4), ylabel="Temperature")
par2.set(ylim=(1, 65), ylabel="Velocity")

凡例と軸の色を追加する

host.legend()メソッドを使って、ホスト軸に凡例を追加します。また、host.axis["left"].label.set_color(p1.get_color())par1.axis["right"].label.set_color(p2.get_color())、およびpar2.axis["right2"].label.set_color(p3.get_color())メソッドを使って、ホスト軸の左側のy軸ラベル、最初の寄生虫軸の右側のy軸ラベル、および2番目の寄生虫軸の右側のy軸ラベルの色をそれぞれ対応する線の色と一致させます。

host.legend()

host.axis["left"].label.set_color(p1.get_color())
par1.axis["right"].label.set_color(p2.get_color())
par2.axis["right2"].label.set_color(p3.get_color())

グラフを表示する

plt.show()メソッドを使ってグラフを表示します。

plt.show()

まとめ

この実験では、Matplotlibのmpl_toolkits.axes_grid1.parasite_axes.HostAxesmpl_toolkits.axes_grid1.parasite_axes.ParasiteAxesモジュールを使って寄生虫軸を作成する方法を学びました。また、寄生虫軸にデータをプロットし、ホスト軸とxスケールを共有する方法も学びました。