Matplotlib 3D轴中的2D多边形

时间:2010-10-31 01:51:01

标签: python 3d matplotlib plot

我正在使用matplotlib将一些数据绘制为3D轴上的2D曲线。我使用ax = axes3d.Axes3D()来定义我的轴,使用ax.plot(x, y, zs='z')来绘制我在3D空间中的2D曲线。

现在我想添加一些看起来像这页http://matplotlib.sourceforge.net/examples/mplot3d/polys3d_demo.html的内容,但我想直接输入顶点的坐标。在此示例中,它们具有固定的z数组,并且它们绘制具有顶点(x,y)的多边形,而我想要的是z(x)(x,y)个顶点。有谁知道怎么做这样的事情?

实际上我不需要收集东西,我只想在任意方向上绘制一个大正方形。

我尝试简单地输入坐标并使用ax.plot()

verts = np.array([[0,0,0], [0,1,0], [1,1,1], [1,0,1], [0,0,0]])
ax.plot(verts[:,0], verts[:,1], verts[:,2], zdir='y')

它确实绘了一个正方形,但我不能(或者不知道如何)填满脸。

1 个答案:

答案 0 :(得分:0)

我希望这就是你想要的! this http://oi44.tinypic.com/i5y9td.jpg

我的矩形将从0到10.所以MAX = 10。 我最初做的是尝试定义z和x之间的轴。 z = MAX-x是我的选择。

然后我先为x的每个小增量绘制此轴,从而创建矩形。 这是代码:

anArray = []    
for i in range(0, 101, 1):
    z = float(i)/10        
    #print "x: ", x
    y = 10 - z
    #print "y: ", y      
    for a in range(0, 101, 1):          
        anArray.append([float(a)/10, y, z])
    #endfor                    
#endfor
verts = np.array(anArray)
ax.plot(verts[:,0],verts[:,1],verts[:,2], zdir='y')