我正在尝试让jupyter笔记本在for循环中显示绘图的进度。该代码有效,但是由于某些原因,在for循环完成后,图形的大小也会更改。这是一组最小的代码来说明这一点(在jupyter笔记本中)
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
%matplotlib notebook
for i in range(10):
plt.gca().scatter(np.random.rand(10),
np.random.rand(10))
plt.gcf().canvas.draw()
plt.gcf().canvas.flush_events()
plt.pause(0.5)
随附说明该问题的gif。这个问题一直使我发疯,更改边距或使用ight_layouts()都无济于事。它似乎与FigureFrame对象的呈现方式有关。 感谢您的帮助!
答案 0 :(得分:0)
在这里发挥matplotlib.animation
的优势。在开始动画之前,将确保已完全绘制图形。
%matplotlib notebook
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
def animate(i):
plt.gca().scatter(np.random.rand(10),
np.random.rand(10))
ani = FuncAnimation(plt.gcf(), animate, frames=10, interval=500)
plt.show()