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

MatplotlibでMATLABのsurf(x, y, z, c)と同じ効果を実現する方法

MATLABの surf(x, y, z, c) と同じような3DサーフェスプロットをMatplotlibで描画する方法を、具体例を通して解説します。手順は以下の通りです。

  • 図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。
  • 新しい図を作成するか、既存の図をアクティブにします。
  • サブプロット配置の一部として、図に 'ax'(3D軸)を追加します。
  • Numpyを使用して r、u、v、x、y、z のデータポイントを作成します。
  • サーフェスプロットを作成します。
  • 図を表示するには、show() メソッドを使用します。

コード例

import matplotlib.pyplot as plt
import numpy as np

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

fig = plt.figure()
ax = fig.add_subplot(projection='3d')
r = 0.05
u, v = np.mgrid[0:2 * np.pi:30j, 0:np.pi:20j]

x = np.cos(u) * np.sin(v)
y = np.sin(u) * np.sin(v)
z = np.cos(v)

ax.plot_surface(x, y, z, cmap=plt.cm.YlGnBu_r)

plt.show()

実行結果

MatplotlibでMATLABのsurf(x, y, z, c)と同じ効果を実現する方法

このコードでは、球面座標のパラメータ u と v を np.mgrid で生成し、三角関数を使って x・y・z の座標を計算することで球面を定義しています。そして ax.plot_surface() にカラーマップ(YlGnBu_r)を指定することで、MATLABの surf 関数のように高さに応じて色が変化する美しい3Dサーフェスプロットが描画されます。cmap の種類を変更すれば、配色も自由にカスタマイズできます。

  1. Matplotlib.pyplotとMatplotlib.figureの違いとは?わかりやすく解説

    Matplotlibでグラフを描く際によく使われるmatplotlib.pyplotとmatplotlib.figure。どちらも図を作成するために使われますが、役割と仕組みが異なります。この記事では、それぞれの特徴と違いを具体例とともに解説します。 matplotlib.pyplotとは matplotlib.pyplotは、MatplotlibをMATLABのように操作できるようにする関数のコレクションです。pyplotの各関数は、図(figure)に対して何らかの変更を加えます。例えば、次のような操作が該当します。 新しい図(figure)を作成する 図の中にプロット領域(Axes)

  2. 【Matplotlib入門】set_xlimとset_xboundの違いを徹底解説!X軸の範囲設定の使い分け方

    MatplotlibでグラフのX軸の表示範囲を制御する際、set_xlim()とset_xbound()という2つの似たメソッドがあります。一見同じように見えますが、実際には動作が異なります。この記事では、両者の違いと具体的な使い方をサンプルコード付きで解説します。 set_xlimとset_xboundの基本的な違い set_xlim() ― X軸の表示範囲(ビューの上限・下限)を直接設定します。このメソッドを使うと、指定した範囲外のデータは表示されなくなり、X軸の自動スケーリング(オートスケール)が無効になります。 set_xbound() ― X軸の数値的な下限と上限(バウンド)を