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

Matplotlibの等高線図で特定のレベルをマークする方法

Matplotlibで等高線図(コンタープロット)に特定のレベルをマークしたい場合は、contour()メソッドとclabel()メソッドを組み合わせることで簡単に実現できます。ここでは、その具体的な手順をコード例とともに解説します。

実装の手順

  • 図のサイズを設定し、サブプロット間および周囲のパディング(余白)を調整します。

  • NumPyを使用して x、y、z のデータポイントを作成します。

  • contour() メソッドを使って等高線プロットを作成します。

  • clabel() メソッドで等高線にレベル値のラベルを付けます。

  • show() メソッドを使って図を表示します。

コード例

import matplotlib.pyplot as plt
import numpy as np

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

def f(x, y):
    return np.sin(x) ** 10 + np.cos(10 + y * x) * np.cos(x)

x = np.linspace(0, 5, 50)
y = np.linspace(0, 5, 40)

X, Y = np.meshgrid(x, y)
Z = f(X, Y)

contours = plt.contour(X, Y, Z, 3, colors='black')

plt.clabel(contours, inline=True, fontsize=8)

plt.show()

コードの解説

このコードでは、まず関数 f(x, y) を定義し、np.linspace() で生成した x と y の値をもとに、np.meshgrid() を使って2次元のグリッドデータを作成しています。その後、plt.contour() の第4引数に「3」を指定することで、3つのレベルの等高線を黒色で描画しています。

重要なのは plt.clabel() の部分です。このメソッドは、各等高線上に対応するレベル値を表示します。inline=True を指定すると、ラベルが等高線の線の中に埋め込まれる形になり見やすくなり、fontsize=8 でラベルの文字サイズを調整しています。これにより、どの等高線がどのレベルに対応しているのかが一目でわかるようになります。

出力結果

Matplotlibの等高線図で特定のレベルをマークする方法

  1. Matplotlibを使ってPythonで3D密度マップを描画する方法を徹底解説

    MatplotlibとNumPyを組み合わせると、Pythonで簡単に3D密度マップ(濃度分布図)を作成できます。本記事では、pcolormesh()メソッドを使って擬似カラープロットとして密度マップを可視化する具体的な手順を、サンプルコード付きでわかりやすく解説します。 3D密度マップを描画する基本の手順 NumPyでデータを生成する:side、x、y、zの各データをNumPyで作成します。特にlinspace関数を使うと、指定した2点間の範囲を任意の分割数で等間隔にデータ生成できるため便利です。 座標行列を作成する:sideデータをもとにmeshgrid()を使い、座標ベクトルから2次元

  2. PythonとMatplotlibを使って3次元の等高線図(コンタープロット)を作成する方法

    Matplotlibは、データ可視化のために広く使われている人気のPythonライブラリです。データの可視化は分析において非常に重要なステップであり、複雑な計算を行ったり数値を一つずつ確認したりしなくても、データの中で何が起きているのかを直感的に把握できるようになります。また、定量的な洞察を効果的に伝える手段としても役立ちます。Matplotlibは主に2次元のプロットを作成するために使用されますが、オブジェクト指向のAPIを備えており、作成したグラフをPythonアプリケーションに組み込むことも可能です。IPythonシェル、Jupyter Notebook、Spyder IDEなど、さまざ