实时更新图表 Python
我想在Python中制作一个实时更新的图表。我做了类似的事情:
import matplotlib.pyplot as plt
import os
plt.ion()
x = []
y = []
home = os.sep.join((os.path.expanduser('~'), 'Desktop'))
for i in range(-350,350):
x.append(i)
y.append(i*i)
plt.plot(x, y, 'g-', linewidth=1.5, markersize=4)
plt.show()
plt.pause(0.1)
plt.pause(5)
plt.savefig(os.path.join(home, 'nowy', '2.png'))
这个方法可以用,但我在想有没有更好的库可以使用?这个库运行得太慢了。而且有没有办法让X轴从0到200,Y轴在获取新数据时能够更新呢?
1 个回答
0
与其在每次循环中都画一条新线,不如只改变第一条线的数值。这样做可以显著提高性能。
import matplotlib.pyplot as plt
import os
plt.ion()
line_handle = plt.plot(0, 0, 'g-', linewidth=1.5, markersize=4) # create plot handle
x = []
y = []
home = os.sep.join((os.path.expanduser('~'), 'Desktop'))
for i in range(-350, 350):
x.append(i)
y.append(i*i)
line_handle.set_ydata(y) # change values instead of drawing another line
line_handle.set_xdata(x)
plt.draw()
plt.show()
plt.pause(0.1)
plt.pause(5)
plt.savefig(os.path.join(home, 'nowy', '2.png'))