我正在尝试使用 for 循环实时绘制数字。我有以下简单的代码:
import matplotlib.pyplot as plt
plt.ion()
plt.figure()
for i in range(100):
plt.plot([i], [i], 'o')
plt.draw()
plt.pause(0.0001)
该代码在完成计算之前不会显示该数字,这是我不想要的。我希望它在每次循环后绘制图形。如果我更换plt.draw()
with plt.show
,实时输出多个图形,但我希望它们都出现在同一个图形中。有任何想法吗?
EDIT:
我下载了 PyCharm 和 Anaconda,一切正常。我猜这是 Spyder 的问题,因为我尝试了几个不同的版本但没有成功。如果有人知道 Spyder 中导致此问题的原因,请告诉我!
根据您的情况改编:Python实时绘图 https://stackoverflow.com/questions/24783530/python-real-time-plotting
import matplotlib.pyplot as plt
import numpy as np
import time
fig = plt.figure()
ax = fig.add_subplot(111)
# some X and Y data
x = [0]
y = [0]
li, = ax.plot(x, y,'o')
# draw and show it
fig.canvas.draw()
plt.show(block=False)
# loop to update the data
for i in range(100):
try:
x.append(i)
y.append(i)
# set the new data
li.set_xdata(x)
li.set_ydata(y)
ax.relim()
ax.autoscale_view(True,True,True)
fig.canvas.draw()
time.sleep(0.01)
except KeyboardInterrupt:
plt.close('all')
break
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)