gpt4 book ai didi

python - 使用 ArtistAnimation 的 Matplotlib 动画更新标题

转载 作者:太空宇宙 更新时间:2023-11-03 14:00:57 26 4
gpt4 key购买 nike

我正在尝试使用 ArtistAnimation 来创建动画。一切正常,除了 set_title 不工作。我不明白为什么 blit=False 不起作用。

我需要去 FuncAnimation 吗? ?

no title

for time in np.arange(-0.5,2,0.01):
writer.UpdatePipeline(time=time)

df=pd.read_csv(outputPath + '0.csv', sep=',')
df['x'] = 1E6*df['x']
df['Efield'] = 1E-6*df['Efield']

line3, = ax3.plot(df['x'], df['Efield'])

line1A, = ax1.semilogy(df['x'], df['em_lin'])
line1B, = ax1.semilogy(df['x'], df['Arp_lin'])

line2A, = ax2.plot(df['x'], df['Current_em'])
line2B, = ax2.plot(df['x'], df['Current_Arp'])

ax1.set_title('$t = ' + str(round(time, n)))
ims.append([line1A, line1B, line2A, line2B, line3])

im_ani = animation.ArtistAnimation(fig, ims, interval=50, blit=False)
im_ani.save(outputPath + 'lines.gif', writer='imagemagick', fps=10, dpi=100)
plt.show()

最佳答案

两个问题。即时的是标题不是要更新的艺术家列表的一部分,因此动画无法知道您要更新它。更深刻的问题是每个轴只有一个标题。因此,即使您将标题包含在艺术家列表中,它也始终会显示上次设置的文本。

解决方案不是使用轴的标题来更新,而是使用其他文本元素,每帧一个。

import matplotlib.pyplot as plt
from matplotlib import animation
import numpy as np

a = np.random.rand(10,10)

fig, ax=plt.subplots()
container = []

for i in range(a.shape[1]):
line, = ax.plot(a[:,i])
title = ax.text(0.5,1.05,"Title {}".format(i),
size=plt.rcParams["axes.titlesize"],
ha="center", transform=ax.transAxes, )
container.append([line, title])

ani = animation.ArtistAnimation(fig, container, interval=200, blit=False)

plt.show()

enter image description here

供引用,与FuncAnimation一样,如下所示,标题可以像往常一样直接设置。

import matplotlib.pyplot as plt
from matplotlib import animation
import numpy as np

a = np.random.rand(10,10)

fig, ax=plt.subplots()
ax.axis([-0.5,9.5,0,1])
line, = ax.plot([],[])

def animate(i):
line.set_data(np.arange(len(a[:,i])),a[:,i])
ax.set_title("Title {}".format(i))

ani = animation.FuncAnimation(fig,animate, frames=a.shape[1], interval=200, blit=False)

plt.show()

关于python - 使用 ArtistAnimation 的 Matplotlib 动画更新标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49158604/

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