Python Matplotlib による風羽図の可視化

PythonPythonBeginner
今すぐ練習

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

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

はじめに

このチュートリアルでは、PythonのMatplotlibを使って風羽図を作成する方法を学びます。風羽図は、旗、線、ドットを組み合わせて風速と風向を表すグラフィカルな表現です。線の長さが風速を表し、旗とドットの向きが風向を表します。

VMのヒント

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

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

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

ライブラリのインポート

まず、必要なライブラリをインポートする必要があります。この場合、MatplotlibとNumPyのライブラリを使用します。

import matplotlib.pyplot as plt
import numpy as np

データの作成

次に、風羽図を生成するために使用するデータを作成します。5x5の一様なグリッドと、meshgrid関数と乗算関数を使ってベクトル場を作成します。

x = np.linspace(-5, 5, 5)
X, Y = np.meshgrid(x, x)
U, V = 12 * X, 12 * Y

風羽図の作成

これで、barbs関数を使って風羽図を作成できます。一様なグリッドをプロットするためにデフォルトのパラメータを使用します。

plt.barbs(X, Y, U, V)
plt.show()

風羽図のカスタマイズ

barbs関数のパラメータを変更することで、風羽図をカスタマイズできます。たとえば、ベクトルの長さと支点を変更したり、空の風羽に対して円を塗りつぶしたり、旗と線の色を変更したりできます。

plt.barbs(X, Y, U, V, length=8, pivot='middle', fill_empty=True, rounding=False,
          sizes=dict(emptybarb=0.25, spacing=0.2, height=0.3), flagcolor='r',
          barbcolor=['b', 'g'], flip_barb=True, barb_increments=dict(half=10, full=20, flag=100))
plt.show()

マスク付きの風羽図の作成

マスク付き配列を使って、マスク付きの風羽図も作成できます。この場合、1つのベクトルの値を不適切な値に変更してマスクします。

masked_u = np.ma.masked_array(U)
masked_u[4] = 1000  ## マスクされたときにプロットされるべきではない不適切な値
masked_u[4] = np.ma.masked

plt.barbs(X, Y, masked_u, V, length=8, pivot='middle')
plt.show()

まとめ

このチュートリアルでは、PythonのMatplotlibを使って風羽図を作成する方法を学びました。まず必要なライブラリをインポートし、プロット用のデータを作成しました。次に基本的な風羽図を作成し、パラメータを変更することでカスタマイズしました。最後に、マスク付き配列を使ってマスク付きの風羽図を作成する方法を学びました。