M =
0.0 0.5 1.0 1.5 2.0
0 300 300.000000 300.000000 1550 1550
1.00e-13 s 300 300.000000 309.150140 1550 1550
2.00e-13 s 300 300.066980 318.166319 1550 1550
3.00e-13 s 300 300.198979 327.050990 1550 1550
4.00e-13 s 300 300.394082 335.806554 1550 1550
5.00e-13 s 300 300.650421 344.435362 1550 1550
6.00e-13 s 300 300.966170 352.939719 1550 1550
7.00e-13 s 300 301.339550 361.321882 1550 1550
8.00e-13 s 300 301.768822 369.584061 1550 1550
9.00e-13 s 300 302.252289 377.728423 1550 1550
Я хочу построить все столбцы для каждой строки, и код ниже делает это. На рисунке ниже приведен пример построения 1 строки
x = M.columns.tolist()
X = np.transpose(x)
i = 1
while i < R:
v = i*t
plt.clf()
y = M.iloc[i,:].tolist()
fig = plt.figure(1)
plt.plot(x,y)
plt.xlabel('x/r')
plt.ylabel('Temperature [K]')
plt.text(0.6, 1650, 'Time ='+str('{:.2e}'.format(v)) + ' s',fontsize=15)
# plt.pause(0.001)
i = i + 10
plt.show()
Приведенный выше код динамически меняет график, но я хочу сохранить изменения в видео формат, поэтому я хочу создать анимацию этого. Однако у меня возникли проблемы с преобразованием кода с помощью приведенного ниже кода.
fig = plt.figure(figsize=(10,6))
w = M.columns.tolist()
W = np.transpose(x)
def animate(i):
while i < R:
v = i*t
A = M.iloc[i,:].tolist()
p.tick_params(labelsize=17)
p = sns.lineplot(x=W, data=A, color="r")
plt.setp(p.lines,linewidth=7)
plt.figure(1)
plt.plot(x,y)
plt.xlabel('x/r')
plt.ylabel('Temperature [K]')
plt.text(0.6, 1650, 'Time ='+str('{:.2e}'.format(v)) + ' s',fontsize=15)
# plt.pause(0.001)
i = i + 10
Writer = Animation.writers['ffmpeg']
writer = Writer(fps=20, metadata=dict(artist='Me'), bitrate=1800)
animation = FuncAnimation(fig, func=animate, frames=np.arange(0, 10, 0.1), interval=10)
ani.save('HeroinOverdosesJumpy.mp4', writer=writer)
plt.show()
Буду признателен за любую помощь.