使用plt.ion()启用交互式绘图(打开绘图窗口时不会停止执行),然后使用plt.clf()清除绘图。
工作样本为:import numpy as np
import matplotlib.pyplot as plt
plt.ion()
import random
t=0
r=3.0
n=0
A=[]
for x in range(10):
for y in range(10):
A.append([random.uniform(0,1),random.uniform(0,1)])
for m in range(len(A)):
plt.plot(A[m][0],A[m][1], "x", color="blue")
plt.draw()
plt.pause(1)
while n<=100:
for m in range(len(A)):
A[m][0]=r*A[m][0]*(1-A[m][0])
A[m][1]=r*A[m][1]*(1-A[m][1])
for m in range(len(A)):
plt.plot(A[m][0],A[m][1], "x", color="blue")
plt.draw()
plt.pause(1)
plt.clf()
必须使用plt.draw()强制GUI立即更新,并使用plt.pause(t)中断t秒。实际上,我不太确定你想如何处理脚本的两个部分(包含plot命令的两个循环)的动画,但希望我的代码能指导你正确的方法。
备注
首先,我建议在编写python时遵循一些约定。使用4空间缩进,这使代码可读性更强。其次,我建议对数组使用numpy。你导入它,但你不使用它。这会让你的代码更快。
第三也是最后一点,您是否知道matplotlib的签名plot(x,y,"bx")?我觉得很方便。