Python で Matplotlib を使って図形を描画する

PythonPythonBeginner
オンラインで実践に進む

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

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

はじめに

この実験では、Python の Matplotlib ライブラリを使って様々な図形を描画する方法を学びます。Matplotlib は、Python プログラミング言語とその数値数学拡張 NumPy 用のグラフ描画ライブラリです。Tkinter、wxPython、Qt、または GTK のような汎用 GUI ツールキットを使って、アプリケーションにプロットを埋め込むためのオブジェクト指向 API を提供します。

VM のヒント

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

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

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

ライブラリのインポート

Matplotlib を使い始める前に、必要なライブラリをインポートする必要があります。

import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
import matplotlib.path as mpath

図形の定義

Matplotlib を使って描画したい図形を定義します。この例では、円、矩形、くさび形、正多角形、楕円、矢印、パスパッチ、およびファンシーボックスパッチを描画します。

shapes = [
    mpatches.Circle((0, 0), 0.1, ec="none"),
    mpatches.Rectangle((-0.025, -0.05), 0.05, 0.1, ec="none"),
    mpatches.Wedge((0, 0), 0.1, 30, 270, ec="none"),
    mpatches.RegularPolygon((0, 0), 5, radius=0.1),
    mpatches.Ellipse((0, 0), 0.2, 0.1),
    mpatches.Arrow(-0.05, -0.05, 0.1, 0.1, width=0.1),
    mpatches.PathPatch(mpath.Path([(0, 0), (0.5, 0.5), (1, 0)], [1, 2, 2]), ec="none"),
    mpatches.FancyBboxPatch((-0.025, -0.05), 0.05, 0.1, ec="none",
                            boxstyle=mpatches.BoxStyle("Round", pad=0.02)),
]

図形の描画

ここでは、Matplotlib を使って shapes リストを反復処理し、プロットに追加することで図形を描画します。

fig, ax = plt.subplots()
for shape in shapes:
    ax.add_artist(shape)
plt.xlim([-0.5, 1.5])
plt.ylim([-0.5, 1.5])
plt.axis('off')
plt.show()

図形のカスタマイズ

色、枠線の色、アルファ値などのさまざまなプロパティを設定することで、図形をカスタマイズできます。

shapes = [
    mpatches.Circle((0, 0), 0.1, color='red', alpha=0.5),
    mpatches.Rectangle((-0.025, -0.05), 0.05, 0.1, ec="none", color='green', alpha=0.5),
    mpatches.Wedge((0, 0), 0.1, 30, 270, ec="none", color='blue', alpha=0.5),
    mpatches.RegularPolygon((0, 0), 5, radius=0.1, color='orange', alpha=0.5),
    mpatches.Ellipse((0, 0), 0.2, 0.1, color='purple', alpha=0.5),
    mpatches.Arrow(-0.05, -0.05, 0.1, 0.1, width=0.1, color='yellow', alpha=0.5),
    mpatches.PathPatch(mpath.Path([(0, 0), (0.5, 0.5), (1, 0)], [1, 2, 2]), ec="none", color='pink', alpha=0.5),
    mpatches.FancyBboxPatch((-0.025, -0.05), 0.05, 0.1, ec="none", color='brown', alpha=0.5,
                            boxstyle=mpatches.BoxStyle("Round", pad=0.02)),
]

fig, ax = plt.subplots()
for shape in shapes:
    ax.add_artist(shape)
plt.xlim([-0.5, 1.5])
plt.ylim([-0.5, 1.5])
plt.axis('off')
plt.show()

プロットの保存

savefig 関数を使って、プロットを画像ファイルとして保存することができます。

fig, ax = plt.subplots()
for shape in shapes:
    ax.add_artist(shape)
plt.xlim([-0.5, 1.5])
plt.ylim([-0.5, 1.5])
plt.axis('off')
plt.savefig('shapes.png')

まとめ

この実験では、Python の Matplotlib ライブラリを使ってさまざまな図形を描画する方法を学びました。図形の定義方法、描画方法、カスタマイズ方法、および画像ファイルとしてプロットを保存する方法を学びました。Matplotlib は、さまざまな種類のプロットを描画するための使いやすい API を提供しており、データ可視化に広く使われています。