python matlibplot使用串行数据非常缓慢地绘制数据

时间:2017-05-10 11:31:42

标签: python opencv matplotlib serial-port

我正在使用matlibplot绘制散点图的三维图形,如下面的代码所示。

from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

plt.ion()
plt.show()

ax.set_xlim([0.,13.])
ax.set_ylim([-1.5,1.5])
ax.set_zlim([-1.5,1.5])

def plotPoint(x,y,z):
    ax.scatter(x, y, z)

上面的代码plotPoint(x,y,z)在非常while True之后的Serial.readLine()循环中调用list_data = [] xdata = [] ydata = [] zdata = [] def update_graph(i): global xdata global ydata global zdata global list_data print i, list_data for x in list_data: xdata.append(x[0][0]) ydata.append(x[1][0]) zdata.append(x[2][0]) graph.set_data (xdata, ydata) graph.set_3d_properties(zdata) title.set_text('3D Test') return title, graph, fig = plt.figure() ax = fig.add_subplot(111, projection='3d') title = ax.set_title('3D Test') graph, = ax.plot(xdata, ydata, zdata, linestyle="", marker="o") ani = matplotlib.animation.FuncAnimation(fig, update_graph, interval=100, blit=True) plt.show()

在这个情节中,我能够每20毫秒在控制台中记录数据。但是在开始绘制图表后,它变得非常慢。

如何快速做到这一点?是否有任何其他python库可以帮助我在图中可视化3d点。我在我的项目中也使用OpenCV。我的情况是否有解决我的opencv问题。

unutbu建议的编辑代码:

127.0.0.1

0 个答案:

没有答案