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

PythonとMatplotlibで3Dカラーサーフェス(着色曲面)を描画する方法

Pythonを使って3Dのカラーサーフェス(着色された曲面)を取得するには、Matplotlibのplot_surface()メソッドを利用します。以下の手順に従うことで、簡単に美しい3D曲面グラフを作成できます。

手順

  • 図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。
  • NumPyを使用してx・yのデータポイントを作成します。
  • メッシュグリッドを生成し、z値(3Dデータ)を計算します。
  • 新しい図を作成するか、既存の図をアクティブにします。
  • 3D投影の axes を取得します。
  • plot_surface() でサーフェスプロットを作成します。カラーマップを指定すると、z値に応じた色分けが可能です。
  • show() メソッドで図を表示します。

サンプルコード

import numpy as np
import matplotlib.pyplot as plt

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

x = np.linspace(-3, 3, 100)
y = np.cos(x)

x, y = np.meshgrid(x, y)

z = x ** 2 + y ** 2 - 2

fig = plt.figure()

ax = plt.axes(projection='3d')

surf = ax.plot_surface(x, y, z,
cmap=plt.get_cmap('hot'),
edgecolor='none')

plt.show()

実行結果

上記のコードを実行すると、hot カラーマップによって赤〜黄色にグラデーション表示された3D曲面が出力されます。z値が大きいほど明るい色で表現され、曲面の高低が直感的に把握できます。

ポイント解説

  • np.meshgrid(): 1次元のx・y配列から2次元の格子座標を生成し、曲面全体をカバーできるようにします。
  • cmap引数: 'hot' のほかにも 'viridis''coolwarm' など、さまざまなカラーマップを指定できます。
  • edgecolor: 'none' を指定すると面の境界線が非表示になり、滑らかな見た目になります。
  1. PythonのMatplotlibで中空(白抜き)の四角形マーカーを描画する方法

    Matplotlibで中空(塗りつぶしなし)の四角形マーカーを描くには、マーカーの種類に ks を指定し、markerfacecolor=none、markersize=15、markeredgecolor=red を設定します。これにより、枠線だけの白抜きスタイルの四角形マーカーが描画されます。 各パラメータの意味 ks:k は黒色(black)、s は四角形(square)を表すマーカースタイルです。 markerfacecolor=none:マーカーの内部を塗りつぶさず、中空にします。 markersize(ms):マーカーのサイズを指定します(ここでは15)。 markeredgec

  2. 【Python】Matplotlibのplt.show()ウィンドウを最大化する方法

    概要Matplotlibでグラフを表示すると、デフォルトでは小さなウィンドウが開きます。plt.get_current_fig_manager() と mng.full_screen_toggle() の2つのメソッドを組み合わせることで、plt.show() で表示されるウィンドウを簡単に最大化(全画面表示)できます。手順subplot() メソッドを使い、現在の図にサブプロットを追加します(nrow=1、ncols=1、index=1)。リスト [1, 2, 3] を渡して pie() メソッドを呼び出し、円グラフを作成します。get_current_fig_manager() メソッドで