6

少し調べてみましたが、多くの便利なメッシュグリッドの例を見つけることができますが、リストのリストからデータを取得して、これまでに見たさまざまな方法のいずれかで受け入れられる形式にする方法を明確に示しているものはありません。

numpy/matplotlib と、提案されている用語と手順のシーケンスに関しては、少し迷っています。

私が見つけた最も近いものは、matplotlib のタプルのリストから 3d サーフェスをプロットすることでした

高さデータのリストのリストがあります。

data=[[h1,h2,h3,h...],
     [h,h,h,h],
     [h,h,h,h],
     [h,h,h,h16]]

data[0][1]==h2

data[4][4]==h16

matplotlib/numpy などを使用して、これらの値の単純な 3D サーフェス プロットを作成するにはどうすればよいですか? カラー値を z 値として持つカラーマップのように。リストのリストを直接受け取るので、 imshow() を問題なく使用できます。私が得たものを、plot_surface が同意できるものにどのようにスライスする必要があるのか​​ 、私にはよくわかりません。

4

1 に答える 1

4

3D サーフェスが必要な場合は、x 座標と y 座標を生成する必要があります。それらが何であるかを気にせず、表面だけが必要な場合は、指定された長さで整数のメッシュ グリッドを生成します。

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D


data = np.array(data)
length = data.shape[0]
width = data.shape[1]
x, y = np.meshgrid(np.arange(length), np.arange(width))

fig = plt.figure()
ax = fig.add_subplot(1,1,1, projection='3d')
ax.plot_surface(x, y, data)
plt.show()

http://matplotlib.org/mpl_toolkits/mplot3d/tutorial.htmlおよびhttp://nbviewer.ipython.org/github/jrjohansson/scientific-python-lectures/blob/master/Lecture-4-Matplotlib.ipynbを参照してください。詳細については

于 2014-07-23T20:59:06.970 に答える