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

Matplotlibの2D等高線図で任意のレベルの等高線を追加する方法

Matplotlibを使って2D等高線図(コンタープロット)に追加の等高線を描画するには、contour()メソッドに表示したいレベル値のリストを指定します。以下の手順で実装できます。

実装手順

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

  • xとyからzのデータポイントを取得する関数 f(x, y) を定義します。

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

  • NumPyで等高線のレベル値のリストを作成します。

  • contour()メソッドを使って等高線図を作成します。このとき、levels引数にレベルのリストを渡すことで、描画する等高線を細かく制御できます。

  • clabel()メソッドで等高線にラベルを付け、title()メソッドでグラフのタイトルを設定します。

  • 図を表示するには、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)
levels = np.arange(-1.0, 1.5, 0.25)
CS = plt.contour(X, Y, Z, levels=levels)

plt.clabel(CS, inline=1, fontsize=10)

plt.title('levels = {}'.format(levels.tolist()))

plt.show()

出力結果

Matplotlibの2D等高線図で任意のレベルの等高線を追加する方法

このコードでは、np.arange(-1.0, 1.5, 0.25)により-1.0から1.25まで0.25刻みのレベル値が生成され、その各値に対応する等高線が描画されます。clabel()inline=Trueオプションを指定すると、ラベルが等高線の線上に埋め込まれて表示され、見やすいグラフになります。レベル値を変更すれば、より密な等高線や特定の値だけの等高線を自由に追加できます。

  1. Matplotlibで2本の点線をプロットする方法|マーカー・線種・凡例の設定も解説

    はじめに この記事では、Pythonの可視化ライブラリ「Matplotlib」を使って、2本の線を1つのグラフに描画し、それぞれに異なる線種(点線・破線)や色、太さを設定する方法を解説します。 コーディングを始める前に、まず次のコマンドでMatplotlibをインポートしておきましょう。 import matplotlib.pyplot as plt Pyplotは、MatplotlibをMATLABのように直感的に操作できるようにするためのコマンドスタイル関数のコレクションです。グラフの描画からラベル付けまで、ほとんどの操作をこのモジュール経由で行います。 アルゴリズム(処理の流れ) ステ

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

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