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

Matplotlibで円形のcontourf(塗りつぶし等高線図)を作成する方法

matplotlib.pyplot の contourf() を使って円形の等高線図(塗りつぶしコンター)を作成するには、アスペクト比を1:1に設定することがポイントです。以下の手順で実装できます。

手順

  • 図のサイズを設定し、plt.rcParams でサブプロット間・周囲の余白を自動調整します。
  • NumPy を使用して x、y、a、b、c のデータポイントを作成します。np.meshgrid() でグリッド座標を生成し、c は原点を中心とした同心円状の値になるように計算します。
  • plt.subplots() で図とサブプロットを作成します。
  • contourf() メソッドを使って塗りつぶし等高線図を描画します。
  • set_aspect(1) でX軸とY軸のアスペクト比を等しく設定します。これにより、等高線が正確な円形として表示されます。
  • show() メソッドで図を表示します。

コード例

import numpy as np
import matplotlib.pyplot as plt

# 図のサイズとレイアウトの自動調整を設定
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

# -0.5〜0.5の範囲で100個のデータポイントを生成
x = np.linspace(-0.5, 0.5, 100)
y = np.linspace(-0.5, 0.5, 100)

# グリッド座標を作成し、円形の等高線になるよう値を計算
a, b = np.meshgrid(x, y)
c = a ** 2 + b ** 2 - 0.2

# 図とサブプロットを作成
figure, axes = plt.subplots()

# 塗りつぶし等高線図を描画
axes.contourf(a, b, c)

# アスペクト比を1に設定して円形に見せる
axes.set_aspect(1)

plt.show()

出力結果

Matplotlibで円形のcontourf(塗りつぶし等高線図)を作成する方法

ポイント解説

この例では c = a² + b² - 0.2 という式により、原点を中心とした同心円状の値を持つデータを作成しています。ここが重要なポイントで、set_aspect(1) を指定しないと、X軸とY軸のスケールが異なるため円が楕円に歪んで表示されてしまいます。アスペクト比を1にすることで、データ上の単位距離が画面上でも等しくなり、真円の等高線図が得られます。

  1. FlaskでMatplotlibのグラフを表示する方法【サンプルコード付き】

    Webアプリケーション上でグラフを動的に表示したい場合、FlaskとMatplotlibを組み合わせるのが効果的です。この記事では、Flaskアプリケーション内でMatplotlibのプロットをPNG画像としてブラウザに返す方法を、具体的な手順とサンプルコードとともにわかりやすく解説します。 実装の流れ FlaskでMatplotlibのグラフを表示するまでの基本的な手順は以下の通りです。 小さなFlaskアプリケーションを作成する カレントディレクトリに移動し、環境変数を設定してアプリを起動する$ export FLASK_APP=file.py$ flask run ブラウザで http

  2. Matplotlibで開いているすべてのpyplotウィンドウを閉じる方法

    Matplotlibで複数の図(figure)ウィンドウを開いたまま作業していると、メモリの無駄遣いや表示の混乱につながることがあります。この記事では、close()メソッドを使ってpyplotのウィンドウを閉じるさまざまな方法を解説します。close()メソッドの使い方一覧Matplotlibでは、状況に応じて以下のようにclose()を使い分けることができます。plt.figure().close():特定の図ウィンドウを閉じます。close():引数なしで呼び出すと、現在アクティブな図を閉じます。close(h):Figureインスタンス h を指定すると、その図だけを閉じます。clos