Python
 Computer >> コンピューター >  >> プログラミング >> Python

Matplotlibの極座標プロットで曲線を描く方法をわかりやすく解説

Matplotlibの極座標プロットでは、通常の直交座標とは異なり、角度と半径を使ってデータを表現します。この記事では、極座標プロット上に放射状の直線と滑らかな曲線を描画する方法を、具体的なコード例とともに解説します。

実装の手順

  • 図のサイズを設定し、rcParamsを使ってサブプロット間および周囲の余白(パディング)を自動調整します。

  • 新しい図を作成するか、既存の図をアクティブにします。

  • サブプロット構成の一部として、図にax(軸オブジェクト)を追加します。このとき、projection="polar"を指定して極座標モードにします。

  • 複数の角度(0度・90度・360度)に対して、color='green'linewidth=2を指定した直線をプロットします。

  • 曲線となるx・yのデータポイントを作成し、plot()メソッドで太い赤色の曲線として描画します。

  • 最後に、show()メソッドを呼び出して図を表示します。

コード例

from matplotlib import pyplot as plt
from scipy.interpolate import interp1d
import numpy as np

plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True

fig = plt.figure()
ax = fig.add_subplot(111, projection="polar")

for degree in [0, 90, 360]:
    rad = np.deg2rad(degree)
    ax.plot([rad, rad], [0, 1], color="green", linewidth=2)

for curve in [[[0, 90], [0.45, 0.75]]]:
    curve[0] = np.deg2rad(curve[0])
    x = np.linspace(curve[0][0], curve[0][1], 500)
    y = interp1d(curve[0], curve[1])(x)
    ax.plot(x, y, lw=7, color='red')

plt.show()

コードのポイント

このコードでは、np.deg2rad()で度数法の角度をラジアンに変換している点が重要です。極座標プロットはラジアン単位で角度を扱うため、この変換を忘れると意図した位置に描画されません。また、scipy.interpolate.interp1dを使うことで、少数の制御点から500点もの滑らかな補間曲線を生成しています。

出力結果

上記のコードを実行すると、次のような図が出力されます。

Matplotlibの極座標プロットで曲線を描く方法をわかりやすく解説

緑色の放射状の直線が中心から外側へ伸び、その間を赤色の太い曲線が滑らかにつないでいることが確認できます。この手法を応用すれば、極座標系でのデータ可視化や、円形のチャート・レーダーチャートなどの装飾にも活用できます。

  1. Matplotlibで正弦曲線をアニメーション化する方法をわかりやすく解説

    PythonのMatplotlibを使えば、正弦曲線(サインカーブ)を簡単にアニメーションとして描画できます。ここでは、matplotlib.animationモジュールのFuncAnimationを利用した基本的な実装手順を、コード例とともに紹介します。 正弦曲線をアニメーション化する手順 図(figure)のサイズを設定し、サブプロット間および周囲のパディングを調整します。 新しい図を作成するか、既存の図をアクティブにします。 現在の図に座標軸(axes)を追加し、X軸・Y軸の表示範囲を指定します。 空のリストを使って線をプロットし、初期状態を準備します。 初期化関数で空のデータを渡して

  2. Matplotlibのプロット内にテキストを追加する方法【plt.text()の使い方】

    Matplotlibで作成したグラフ(プロット)の中にテキストを追加したい場合、plt.text()メソッドを使うのが最も簡単な方法です。この記事では、具体的な手順とコード例を交えて解説します。 テキストを追加する基本手順 図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。 NumPyを使ってxとyのデータポイントを作成します。 フォントサイズや背景色などのテキストプロパティを指定しながら、テキストを配置します。 plot()メソッドでxとyをプロットします。 必要に応じてaxis(off)で軸を非表示にします。 show()メソッドで図を表示します。 コード例