gpt4 book ai didi

python - 在循环的每次传递处显示子图

转载 作者:太空宇宙 更新时间:2023-11-03 20:03:04 25 4
gpt4 key购买 nike

我基本上想做以下事情:

import matplotlib.pyplot as plt
import numpy as np

fig1, ax1 = plt.subplots()
fig2, ax2 = plt.subplots()

for i in range(10):

ax1.scatter(i, np.sqrt(i))
ax1.show() # something equivalent to this

ax2.scatter(i, i**2)

也就是说,每次在 ax1 上绘制一个点时,都会显示 - ax2 显示一次。

最佳答案

您不能单独显示轴。轴始终是图形的一部分。对于动画,您需要使用交互式后端。那么 jupyter 笔记本中的代码可能如下所示

%matplotlib notebook
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation


fig1, ax1 = plt.subplots()
fig2, ax2 = plt.subplots()

frames = 10
x = np.arange(frames)
line1, = ax1.plot([],[], ls="", marker="o")
line2, = ax2.plot(x, x**2, ls="", marker="o")
ax2.set_visible(False)



def animate(i):
line1.set_data(x[:i], np.sqrt(x[:i]))
ax1.set_title(f"{i}")
ax1.relim()
ax1.autoscale_view()
if i==frames-1:
ax2.set_visible(True)
fig2.canvas.draw_idle()

ani = FuncAnimation(fig1, animate, frames=frames, repeat=False)

plt.show()

关于python - 在循环的每次传递处显示子图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59121351/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com