Matplotlib を使って極座標グラフを作成する

Beginner

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

はじめに

Matplotlib は、Python で静的、アニメーション、インタラクティブなビジュアライゼーションを作成するために使用される Python ライブラリです。Matplotlib の主な機能の 1 つは、散布図、折れ線グラフ、棒グラフなど、あらゆる種類とスタイルの 2D と 3D プロットを作成する能力です。この実験では、Matplotlib を使用して矩形ボックス内で極座標曲線を作成する方法を学びます。

VM のヒント

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

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

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

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

このステップでは、極座標曲線を作成するために必要なライブラリをインポートします。数値計算にはnumpyを、プロット作成にはmatplotlibを使用します。

import matplotlib.pyplot as plt
import numpy as np

極座標軸を定義する

このステップでは、極座標軸を定義してスケーリング係数を設定します。極座標軸を定義するには、PolarAxes.PolarTransform() を使用します。

from matplotlib.projections import PolarAxes
from matplotlib.transforms import Affine2D

## Define the polar axes
tr = Affine2D().scale(np.pi / 180., 1.) + PolarAxes.PolarTransform()

グリッドヘルパーを定義する

このステップでは、極座標曲線を作成するために使用されるグリッドヘルパーを定義します。グリッドヘルパーを定義するには、GridHelperCurveLinear を使用します。

from mpl_toolkits.axisartist import GridHelperCurveLinear, HostAxes
import mpl_toolkits.axisartist.angle_helper as angle_helper

## Define the grid helper
extreme_finder = angle_helper.ExtremeFinderCycle(20,
                                                 20,
                                                 lon_cycle=360,
                                                 lat_cycle=None,
                                                 lon_minmax=None,
                                                 lat_minmax=(0, np.inf),
                                                 )
grid_locator1 = angle_helper.LocatorDMS(12)
tick_formatter1 = angle_helper.FormatterDMS()

grid_helper = GridHelperCurveLinear(tr,
                                    extreme_finder=extreme_finder,
                                    grid_locator1=grid_locator1,
                                    tick_formatter1=tick_formatter1
                                    )

ホスト軸を作成する

このステップでは、ホスト軸を作成してグリッドヘルパーを設定します。ホスト軸を作成するには、fig.add_subplot() を使用します。

## Create the host axes
fig = plt.figure(figsize=(5, 5))
ax1 = fig.add_subplot(axes_class=HostAxes, grid_helper=grid_helper)

浮動軸を作成する

このステップでは、矩形ボックス内に極座標曲線を表示するために使用される 2 つの浮動軸を作成します。浮動軸を作成するには、new_floating_axis() を使用します。

## Create the floating axes
ax1.axis["lat"] = axis = ax1.new_floating_axis(0, 60)
axis.label.set_text(r"$\theta = 60^{\circ}$")
axis.label.set_visible(True)

ax1.axis["lon"] = axis = ax1.new_floating_axis(1, 6)
axis.label.set_text(r"$r = 6$")

軸の制限を設定してグリッドを表示する

このステップでは、軸の制限を設定してグリッドを表示します。軸のアスペクト比を設定するには set_aspect() を、グリッドを表示するには grid() を使用します。

## Set the limits and display the grid
ax1.set_aspect(1.)
ax1.set_xlim(-5, 12)
ax1.set_ylim(-5, 10)
ax1.grid(True)

極座標曲線を表示する

このステップでは、矩形ボックス内に極座標曲線を表示します。グラフを表示するには plt.show() を使用します。

## Display the polar curve
plt.show()

まとめ

この実験では、Matplotlib を使って矩形ボックス内に極座標曲線を作成する方法を学びました。極座標軸とグリッドヘルパーを定義する方法、ホスト軸を作成する方法、浮動軸を作成する方法、制限を設定する方法、グリッドを表示する方法、および極座標曲線を表示する方法を学びました。この知識を使えば、Matplotlib を使って矩形ボックス内にさまざまな極座標曲線を作成できます。