7

plot_surface (Axes3d) で使用する配列を作成する方法を理解しようとしています。これらの配列のデータを操作する単純なサーフェスを作成しようとしました。

In [106]: x
Out[106]: 
array([[0, 0],
       [0, 1],
       [0, 0]])

In [107]: y
Out[107]: 
array([[0, 0],
       [1, 1],
       [0, 0]])

In [108]: z
Out[108]: 
array([[0, 0],
       [1, 1],
       [2, 2]])

しかし、それらがどのように解釈されるかわかりません。たとえば、プロットの z=2 には何もありません。誰でも、ポイントを作成するためにどの値が取られるか、線と最終的に表面にどの値が使用されるかを正確に説明してください。

たとえば、線の点で接続するサーフェスを作成したいと思います: [0,0,0]->[1,1,1]->[0,0,2] [0,0,0]-> [1,-1,1]->[0,0,2] およびそれらの線の間の面。このようなものを得るには、配列はplot_surfaceどのように見えるべきですか?

4

2 に答える 2

1

私があなたを正しく理解しているなら、あなたは一連の点を通して表面を補間しようとします。plot_surfaceがこれに適した関数ではないと思います。しかし、私が間違っている場合は私を訂正してください。補間ツール、おそらくscipy.interpolateにあるツールを探す必要があると思います。補間の結果は、plot_surfaceを使用してプロットできます。

plot_surfaceは、x、y座標に基づいて、3D空間にグリッド(z値を含む)をプロットできます。xとyの配列は、numpy.meshgridによって作成されたものです。

plot_surfaceの例:

import pylab as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D

plt.ion()

x = np.arange(0,np.pi, 0.1)
y = x.copy()
z = np.sin(x).repeat(32).reshape(32,32)

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

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(X,Y,z, cmap=plt.cm.jet, cstride=1, rstride=1)
于 2012-07-15T13:15:02.673 に答える