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

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

MatplotlibとNumPyを組み合わせると、Pythonで簡単に3D密度マップ(濃度分布図)を作成できます。本記事では、pcolormesh()メソッドを使って擬似カラープロットとして密度マップを可視化する具体的な手順を、サンプルコード付きでわかりやすく解説します。

3D密度マップを描画する基本の手順

  1. NumPyでデータを生成する:side、x、y、zの各データをNumPyで作成します。特にlinspace関数を使うと、指定した2点間の範囲を任意の分割数で等間隔にデータ生成できるため便利です。
  2. 座標行列を作成する:sideデータをもとにmeshgrid()を使い、座標ベクトルから2次元の座標行列(X、Y)を返します。
  3. 指数関数的なデータを作る:手順2で得たxとyを使い、ガウス分布のような指数関数的なZ値を計算します。これが密度マップの「高さ」に相当します。
  4. 擬似カラープロットを描画するpcolormesh()メソッドを使うことで、不規則な矩形グリッド上でも擬似カラー(疑似色)による密度プロットを作成できます。
  5. 図を表示する:最後にshow()メソッドを呼び出して、作成した図を画面に表示します。

サンプルコード

from matplotlib import pyplot as plt, cm, colors
import numpy as np
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
side = np.linspace(-2, 2, 15)
X, Y = np.meshgrid(side, side)
Z = np.exp(-((X - 1) ** 2 + Y ** 2))
plt.pcolormesh(X, Y, Z, shading='auto')
plt.show()

実行結果

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

このコードでは、np.linspace(-2, 2, 15)により-2から2までの範囲を15分割したデータを作成し、それをmeshgrid()で2次元グリッドに展開しています。Zの値は中心(1, 0)をピークとするガウス関数で計算されており、pcolormesh()によって色の濃淡で密度の高低が直感的に表現されます。shading='auto'を指定することで、グリッドサイズに応じた適切なシェーディングが自動的に選択されます。

さらに色見本(カラーバー)を追加したい場合は、plt.colorbar()plt.show()の前に挿入すると、値と色の対応がひと目でわかるようになり、より見やすいグラフになります。

  1. Python Matplotlibで密度マップをプロットする方法を徹底解説

    PythonのMatplotlibを使って密度マップ(ヒートマップ)をプロットするには、pcolormesh()メソッドを利用するのが便利です。この記事では、NumPyでデータを生成し、擬似カラープロットとして可視化するまでの手順をコード例とともに解説します。 密度マップを描く基本の手順 NumPyを使ってside(軸の範囲)、x、y、zのデータを作成します。NumPyのlinspace関数を使うと、指定した区間を任意の分割数で等間隔にサンプリングしたデータを簡単に生成できます。 meshgrid()関数にsideのデータを渡し、1次元の座標ベクトルから2次元の座標行列(メッシュグリッド)

  2. Python Matplotlibで円グラフの一部を強調表示して描画する方法

    はじめに あなたが最も好きなグラフの種類は何ですか?経営層やビジネスアナリストにこの質問をすると、即座に「円グラフ(パイチャート)!」と答えられるほど、円グラフは割合を視覚的に表現するための最も一般的な手法のひとつです。 この記事では、PythonのMatplotlibを使って基本的な円グラフを描く方法から、explodeパラメータで特定のセクターを強調表示するテクニック、さらにパーセンテージではなく実際の値をラベルとして表示するカスタム関数の実装まで、段階的に解説します。 基本的な円グラフの作成手順 ステップ1:Matplotlibのインストール まず、以下のコマンドでMatplotlibを