我有一个列表Beam_points,它是3个元素数组的列表列表(例如Beam_points[2] = [array([1,2,3]), array([2,3,4])]
)。每个阵列列表都是光束中给定光线的点列表。我试图以下列方式绘制每个光束路径的z与y坐标:
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()
虽然必须有更高效/ pythonic的方式吗?绘图需要相当长的时间。
感谢。
答案 0 :(得分: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()