2010-10-31 99 views
2

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

现在我想添加一些看起来像这个页面上的东西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') 

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

回答

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')