2010-10-31 98 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')