2014-02-07 58 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()