我写了下面的代码片段,试图让它更新绘图。但实际上,新的图形会与旧的图形重叠在一起。我做了一些研究,发现我需要在当前轴上使用relim()
和autoscale_view(True,True,True)
。但我仍然无法获得所需的行为。有没有一种方法可以强制pyplot在调用plt.draw()之前删除/移除旧的绘图?
import numpy as np
import matplotlib.pyplot as plt
import time
plt.ion()
a = np.arange(10)
fig,ax = plt.subplots(2,1)
plt.show()
for i in range(100):
b = np.arange(10) * np.random.randint(10)
ax[0].bar(a,b,align='center')
ax[0].relim()
ax[0].autoscale_view(True,True,True)
ax[1].plot(a,b,'r-')
ax[1].relim()
ax[1].autoscale_view(True,True,True)
plt.draw()
time.sleep(0.01)
plt.pause(0.001)