2014-02-07 57 views
0

我有一個列表Beam_points,它是3個元素列表的列表(例如Beam_points[2] = [array([1,2,3]), array([2,3,4])])。陣列的每個列表都是光束中給定光線的點列表。我試圖與Ÿ以下列方式協調每個光束的路徑來繪製Z:在列表中的列表中創建座標列表中的元素

def plot(self): 
    z_coords, y_coords = [], [] 
    for list in self.Beam_points: 
     z, y = [], [] 
     for i in list: 
      z.append(i[2]), y.append(i[1]) 
     z_coords.append(z), y_coords.append(y)  
    for z,y in zip(z_coords, y_coords): 
      plt.plot(z, y, color = "Blue") 
    plt.title('Beam Path') 
    plt.xlabel('z') 
    plt.ylabel('y') 
    plt.show() 

雖然有必須這樣做更有效的/ Python的方式?繪製需要相當長的時間。

謝謝。

回答

1

您可以使用numpy更多的功能,並且只使用一個循環來繪製:

def plot(self): 
    ultra_beam_point = np.array(self.Beam_points) 
    for z,y in ultra_beam_point[:,:,1:]: 
     plt.plot(z, y, color = "Blue") 
    plt.title('Beam Path') 
    plt.xlabel('z') 
    plt.ylabel('y') 
    plt.show()