Python の Matplotlib を使った図形の作成

PythonPythonBeginner
今すぐ練習

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

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

はじめに

このチュートリアルでは、Python の Matplotlib を使って円、ウェッジ、多角形を作成する方法をユーザーに案内します。また、作成した形状を視覚化するために.collections.PatchCollectionを使用することもできます。

VM のヒント

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

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

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

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

まず、必要なライブラリをインポートする必要があります。

import matplotlib.pyplot as plt
import numpy as np

from matplotlib.collections import PatchCollection
from matplotlib.patches import Circle, Polygon, Wedge

グラフと軸を作成する

形状を描画するために、グラフと軸を作成します。

fig, ax = plt.subplots()

頂点の数と形状の数を定義する

作成する頂点の数と形状の数を定義します。

resolution = 50  ## 頂点の数
N = 3

円を作成する

Circle() を使って円を作成し、パッチのリストに追加します。

x = np.random.rand(N)
y = np.random.rand(N)
radii = 0.1*np.random.rand(N)
patches = []
for x1, y1, r in zip(x, y, radii):
    circle = Circle((x1, y1), r)
    patches.append(circle)

くさび形を作成する

Wedge() を使ってくさび形を作成し、パッチのリストに追加します。

x = np.random.rand(N)
y = np.random.rand(N)
radii = 0.1*np.random.rand(N)
theta1 = 360.0*np.random.rand(N)
theta2 = 360.0*np.random.rand(N)
for x1, y1, r, t1, t2 in zip(x, y, radii, theta1, theta2):
    wedge = Wedge((x1, y1), r, t1, t2)
    patches.append(wedge)

くさび形に制限条件を追加する

くさび形に制限条件を追加します。

patches += [
    Wedge((.3,.7),.1, 0, 360),             ## 完全な円
    Wedge((.7,.8),.2, 0, 360, width=0.05),  ## 完全な輪
    Wedge((.8,.3),.2, 0, 45),              ## 完全なセクター
    Wedge((.8,.3),.2, 45, 90, width=0.10),  ## 輪のセクター
]

多角形を作成する

Polygon() を使って多角形を作成し、パッチのリストに追加します。

for i in range(N):
    polygon = Polygon(np.random.rand(N, 2), closed=True)
    patches.append(polygon)

色を設定して PatchCollection を作成する

我々は図形の色を設定し、PatchCollection() を作成します。

colors = 100 * np.random.rand(len(patches))
p = PatchCollection(patches, alpha=0.4)
p.set_array(colors)
ax.add_collection(p)
fig.colorbar(p, ax=ax)

グラフを表示する

我々はグラフを表示します。

plt.show()

まとめ

このチュートリアルでは、Python の Matplotlib を使って円、くさび形、多角形を作成する方法を示しました。また、作成した図形を視覚化するために.collections.PatchCollectionをどのように使用するかも学びました。