我想在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'))
它有效,但我想知道是否有更好的lib?这个是慢的。如果有一些方法可以使X线从0到200而Y线会在获得新点时更新?
答案 0 :(得分: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'))