方向矢印付きの Matplotlib 楕円

Beginner

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

はじめに

この実験では、Matplotlib を使って方向矢印付きの楕円を描画する方法を学びます。楕円は、データ可視化においてデータを表すために一般的に使用される形状の一種です。楕円に方向矢印を追加することで、データの方向に関する追加情報を提供することができます。

VM のヒント

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

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

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

Matplotlib をインポートしてグラフと軸を作成する

まず、Matplotlib をインポートしてグラフと軸を作成する必要があります。グラフと軸は、プロットのコンテナです。

import matplotlib.pyplot as plt

## Create a figure and axis
fig, ax = plt.subplots(subplot_kw={"aspect": "equal"})

楕円を作成する

次に、Ellipse クラスを使って楕円を作成する必要があります。楕円の中心、幅と高さ、回転角度を指定することができます。

from matplotlib.patches import Ellipse

ellipse = Ellipse(
    xy=(2, 4),
    width=30,
    height=20,
    angle=35,
    facecolor="none",
    edgecolor="b"
)
ax.add_patch(ellipse)

方向矢印を追加する

楕円に方向矢印を追加するには、短径の端点にマーカーを描画します。楕円の頂点の座標を取得するには、get_co_vertices() メソッドを使用できます。その後、Affine2D() クラスを使用して、マーカーを回転させて楕円の角度に一致させることができます。

from matplotlib.markers import MarkerStyle
from matplotlib.transforms import Affine2D

## Plot an arrow marker at the end point of minor axis
vertices = ellipse.get_co_vertices()
t = Affine2D().rotate_deg(ellipse.angle)
ax.plot(
    vertices[0][0],
    vertices[0][1],
    color="b",
    marker=MarkerStyle(">", "full", t),
    markersize=10
)

方向矢印を逆にする

方向矢印を逆にしたい場合は、マーカーの種類を > から < に切り替えることができます。

## To reverse the orientation arrow, switch the marker type from > to <.
ax.plot(
    vertices[0][0],
    vertices[0][1],
    color="b",
    marker=MarkerStyle("<", "full", t),
    markersize=10
)

グラフを表示する

最後に、show() メソッドを使ってグラフを表示できます。

plt.show()

まとめ

おめでとうございます!Matplotlib を使って方向矢印付きの楕円を描画する方法を学びました。この技術は、方向を持つデータを視覚化する際に役立ちます。