猿问

如何为子图中的数字设置动画?

我写了一个代码来解释波浪的叠加。我在下面粘贴我的代码和输出。但问题是我只创建静态图......如果我可以为波浪设置动画(在我的代码中:)subplot(211)并且对应的结果在subplot(212). 但到目前为止,我只能在没有子图的情况下制作动画……当我在互联网上研究“使用子图制作动画matplotlib”时,我发现结果不太好理解,在这种情况下也与我的代码不同。


任何人都可以在这方面帮助我吗?如果动画基于我的以下代码结构会更好(当然,对子图动画进行必要的更改是值得赞赏的)。谢谢你们。


我的代码


#Composition of Waves

import matplotlib as mpl

mpl.rc('text', usetex = True)

mpl.rc('font', family = 'serif')

import matplotlib.pyplot as plt

import numpy as np


plt.gca().set_aspect('equal', adjustable='box')

plt.style.use(['ggplot','dark_background'])


title = 'Composition of Waves'

#Parameters:

#a=Amplitude; w=Angular Frequency; phi = Phase Angle.


#Definition of the function:

def f(t,a,w,phi): 

    y = a*np.sin(w*t + phi)

    return y


t = np.arange(0,4*np.pi,0.001)


def create_plot(ptype):

    y1 = f(t,1,1,1)

    y2 = f(t,2,2,2)

    y = y1 + y2

    if ptype == 'waves':

        plt.plot(t, y1, label='$y=f_1(t)$')

        plt.plot(t, y2, label='$y=f_2(t)$')

    elif ptype == 'composition':

        plt.plot(t, y, label='$Composition$', color= 'm')


plt.figure(1)

plt.subplot(211)                                  

create_plot('waves')

plt.legend()

plt.legend(loc='center left', bbox_to_anchor=(1, 0.5))

#plt.xlabel('$x$')

plt.ylabel('$y$')

plt.title(title)


plt.subplot(212)

create_plot('composition')

plt.legend()

plt.legend(loc='center left', bbox_to_anchor=(1, 0.5))

plt.xlabel('$t$')

plt.ylabel('$y$')


# Tweak spacing between subplots to prevent labels 

from overlapping

plt.subplots_adjust(hspace=0.5)


plt.savefig('composition_Waves.eps', format='eps', dpi=1000,bbox_inches='tight')


plt.show()

输出

在这里,我想以不同的wphi.


智慧大石
浏览 118回答 1
1回答
随时随地看视频慕课网APP

相关分类

Python
我要回答