Matplotlib を使ったカスタムグリッド変換

PythonPythonBeginner
今すぐ練習

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

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

はじめに

この実験では、グリッドに変換を適用することで、GridHelperCurveLinearを使ってカスタムグリッドと目盛り線を定義する方法について、手順を追って説明します。カスタムグリッドと目盛り線を作成するために、PythonのMatplotlibライブラリを使用します。

VMのヒント

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

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

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

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

最初のステップは、必要なライブラリをインポートすることです。これには、matplotlib.pyplotnumpyExtremeFinderSimpleMaxNLocator、およびGridHelperCurveLinearが含まれます。

import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.axisartist.axislines import Axes
from mpl_toolkits.axisartist.grid_finder import (ExtremeFinderSimple, MaxNLocator)
from mpl_toolkits.axisartist.grid_helper_curvelinear import GridHelperCurveLinear

変換関数を定義する

2番目のステップは、変換関数を定義することです。この例では、x軸の値を変換してy軸の値は変更しないためにtr関数を使用します。inv_tr関数は、変換を逆にするために使用されます。

def tr(x, y):
    return np.sign(x)*abs(x)**.5, y

def inv_tr(x, y):
    return np.sign(x)*x**2, y

GridHelperCurveLinearを定義する

3番目のステップは、GridHelperCurveLinearインスタンスを定義することです。2番目のステップで定義した変換関数を使ってグリッドを変換します。また、目盛りの密度を高めるために、grid_locator1grid_locator2MaxNLocator(nbins=6)に設定します。

grid_helper = GridHelperCurveLinear(
    (tr, inv_tr),
    extreme_finder=ExtremeFinderSimple(20, 20),
    grid_locator1=MaxNLocator(nbins=6), grid_locator2=MaxNLocator(nbins=6))

軸を定義して画像を表示する

4番目のステップは、3番目のステップで作成したgrid_helperインスタンスを使って軸を定義することです。また、imshow関数を使って画像を表示します。

ax1 = fig.add_subplot(axes_class=Axes, grid_helper=grid_helper)
ax1.imshow(np.arange(25).reshape(5, 5), vmax=50, cmap=plt.cm.gray_r, origin="lower")

グラフを作成する

最後のステップは、plt.figure関数を使ってグラフを作成することです。グラフのサイズを(7, 4)に設定し、2 - 4のステップで作成したcurvelinear_test1関数を呼び出します。

if __name__ == "__main__":
    fig = plt.figure(figsize=(7, 4))
    curvelinear_test1(fig)
    plt.show()

まとめ

この実験では、グリッドに変換を適用することで、GridHelperCurveLinearを使ってカスタムグリッドと目盛りを定義する方法を学びました。PythonのMatplotlibライブラリを使って、軸に表示される5x5の行列に対するカスタムグリッドと目盛りを作成しました。