はじめに
このチュートリアルでは、Python の Matplotlib を使って極座標軸上に散布図を作成する方法を学びます。極座標プロットは、極座標で表示されるデータのグラフィカルな表現です。データが周期的または円形の性質を持っている場合、たとえば時間や方向にわたって測定されたデータの場合に便利です。
VM のヒント
VM の起動が完了したら、左上隅をクリックして ノートブック タブに切り替えて、Jupyter Notebook を使って練習します。
時々、Jupyter Notebook が読み込み終了するまで数秒待つ必要がある場合があります。Jupyter Notebook の制限により、操作の検証を自動化することはできません。
学習中に問題に遭遇した場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。
必要なライブラリをインポートする
極座標軸上に散布図を作成するには、Matplotlib と NumPy のライブラリをインポートする必要があります。再現性のために乱数シードも設定します。
import matplotlib.pyplot as plt
import numpy as np
np.random.seed(19680801)
ランダムなデータを生成する
NumPy を使って散布図用のランダムなデータを生成します。ランダムな半径と角度の値を持つ 150 個のデータポイントを作成し、各ポイントの面積と色を計算します。
N = 150
r = 2 * np.random.rand(N)
theta = 2 * np.pi * np.random.rand(N)
area = 200 * r**2
colors = theta
極座標軸上に散布図を作成する
plt.scatter() 関数を使って極座標軸上に散布図を作成します。projection パラメータを 'polar' に設定し、半径、角度、色、面積の値をパラメータとして渡します。
fig = plt.figure()
ax = fig.add_subplot(projection='polar')
c = ax.scatter(theta, r, c=colors, s=area, cmap='hsv', alpha=0.75)
原点をオフセットした極座標軸上に散布図を作成する
PolarAxes オブジェクトの set_rorigin() と set_theta_zero_location() メソッドを設定することで、原点をオフセットした極座標軸上に散布図を作成できます。原点半径を -2.5 に設定し、オフセット 10 でゼロ位置のゼータを 'W' に設定します。
fig = plt.figure()
ax = fig.add_subplot(projection='polar')
c = ax.scatter(theta, r, c=colors, s=area, cmap='hsv', alpha=0.75)
ax.set_rorigin(-2.5)
ax.set_theta_zero_location('W', offset=10)
セクタに制限された極座標軸上に散布図を作成する
PolarAxes オブジェクトの set_thetamin() と set_thetamax() メソッドを設定することで、セクタに制限された極座標軸上に散布図を作成できます。ゼータの開始と終了の制限をそれぞれ 45 と 135 に設定します。
fig = plt.figure()
ax = fig.add_subplot(projection='polar')
c = ax.scatter(theta, r, c=colors, s=area, cmap='hsv', alpha=0.75)
ax.set_thetamin(45)
ax.set_thetamax(135)
まとめ
このチュートリアルでは、Python の Matplotlib を使って極座標軸上に散布図を作成する方法を学びました。ランダムなデータを生成し、極座標軸上に散布図を作成し、原点をオフセットした極座標軸上に散布図を作成し、セクタに制限された極座標軸上に散布図を作成しました。極座標プロットは、時間や方向にわたって測定されたデータなど、周期的または円形のデータを表示するのに役立ちます。