human
Can you provide a code to 3 given the following:
3. 可視化
数値計算が完了したものの，数字の羅列では運動の様子が直感的には理解できない．そこで，振り子の運動の様子を表すアニメーション動画や，振子の角度の時間変化を表すグラフを作る．
以下に示すanimfunc はアニメーション動画を生成する関数である．基本的な原理はパラパラ漫画であり，動画フレームごとに振り子の絵を描いては保存するの繰り返しを行っている．フレームごとの更新はupdate_figure関数が行っている．"
Please write code following the instructions in jupyter notebook style.
assistant
#Here is code to 3.

import matplotlib.pyplot as plt
import matplotlib.animation as animation
from math import cos

def animfunc(s, t):
    ''' Create mp4 movie file of a pendulum '''
    plt.close()
    fig = plt.figure()
    plt.axis('scaled')
    plt.xlim(-1, 1)
    plt.ylim(-1.5, .5)
    plt.grid('on')
    draw_ceiling, = plt.plot([-2, 2], [0, 0], c='k', lw=2)
    draw_pendulum, = plt.plot([], [], lw=4, c='b')
    draw_mass, = plt.plot([], [], lw=2, marker='o', ms=20, mew=4, mec='b', mfc='c')
    indicate_time = plt.text(-0.3, 0.25, [], fontsize=12)

    def update_figure(i):
        ''' Set data of each movie frame '''
        mass_x = l*sin(s[i, 0])
        mass_y = - l*cos(s[i, 0])
        pendlum_x = [0, mass_x]
        pendlum_y = [0, mass_y]
        draw_pendulum.set_data(pendlum_x, pendlum_y)
        draw_mass.set_data(mass_x, mass_y)
        indicate_time.set_text('t = {0:4.2f} [s]'.format(t[i]))

    ''' Create a movie file '''
    line_ani = animation.FuncAnimation(fig, update_figure, frames=len(t))
    line_ani.save('./pendulum.mp4', fps=t_fps)
    print('pendulum.mp4 created')