动画可以更客观直观地展示一些结果。 本文将展示功能:
代码如下:
将 numpy 导入为 np
将 matplotlib.pyplot 导入为 plt
从 matplotlib.animation 导入 FuncAnimation
图,ax = plt.subplots()
铂。 轴(’等于’)
铂。 轴(’关闭’)
xdata, ydata = np.linspace(-2*np.pi, 2*np.pi, 1000), []
temp1, temp2 = np.power(np.square(xdata),0.33), 0.9*np.sqrt(3.3-np.square(xdata))
ln, = ax.plot([], [], ‘r-‘, animated=False)
定义初始化():
ax.set_xlim(-np.pi, np.pi)
斧头。 set_ylim(-2, 3)
返回ln,
定义更新(n):
ydata = temp1 temp2*np.sin(n*np.pi*xdata)
ln. set_data(xdata,ydata)
返回ln,
ani = FuncAnimation(fig, update, frames=np.linspace(0, 20, 100), init_func=init, blit=True)
plt.show()
matplotlib.animate中绘图函数FuncAnimation(fig,func,frames,init_func,interval,blit)参数说明:
需要安装Moviepy和 通过 matplotlib 定制一个动画功能就足够了,需要使用 mplfig_to_npimage 将画布对象转换,然后使用 VideoClip 将其导出为 gif 或 MP4 视频格式。 代码如下:
动画可以更客观直观地展示一些结果。 本文将展示功能:
使用matplotlib.animate
代码如下:
import numpy as np
将 matplotlib.pyplot 导入为 plt
从 matplotlib.animation 导入 FuncAnimation
图,ax = plt.subplots()
铂。 轴(’等于’)
铂。 轴(’关闭’)
xdata, ydata = np.linspace(-2*np.pi, 2*np.pi, 1000), []
temp1, temp2 = np.power(np.square(xdata),0.33), 0.9*np.sqrt(3.3-np.square(xdata))
ln, = ax.plot([], [], ‘r-‘, animated=False)
定义初始化():
ax.set_xlim(-np.pi, np.pi)
斧头。 set_ylim(-2, 3)
返回ln,
定义更新(n):
ydata = temp1 temp2*np.sin(n*np.pi*xdata)
ln. set_data(xdata,ydata)
返回ln,
ani = FuncAnimation(fig, update, frames=np.linspace(0, 20, 100), init_func=init, blit=True)
plt.show()
Matplotlib.animate绘图函数FuncAnimation(fig, func, frames, init_func, interval, blit)参数说明:
- fig For canvas
- func是自定义的动画函数
- frames是func的frame 参数个数
- init_func自定义初始化函数
- interval更新频率,毫秒
li>
- blit表示更新所有数据,或者新的数据点,是一个布尔值
和Moviepy
需要安装Moviepy,可以通过matplotlib自定义一个动画函数。 您需要使用 mplfig_to_npimage 转换画布对象,然后使用 VideoClip 将其导出为 gif 或 MP4 视频格式。 代码如下:
import matplotlib.pyplot as plt
将 numpy 导入为 np
从 moviepy.video.io.bindings 导入 mplfig_to_npimage
将 moviepy.editor 导入为 mpy
持续时间 = 20
fig_mpl, ax = plt.subplots(1,figsize=(5,3), facecolor=’white’)
铂。 轴(’等于’)
铂。 轴(’关闭’)
xdata, ydata = np.linspace(-2*np.pi, 2*np.pi, 1000), []
temp1, temp2 = np.power(np.square(xdata),0.33), 0.9*np.sqrt(3.3-np.square(xdata))
ax.set_xlim(-np.pi, np.pi)
斧头。 set_ylim(-2, 3)
line, = ax.plot([], [], ‘r-‘)
def make_frame_mpl(t):
ydata = temp1 temp2*np.sin(t*np.pi*xdata)
line.set_data(xdata,ydata)
返回 mplfig_to_npimage(fig_mpl)
动画=mpy.VideoClip(make_frame_mpl, duration=duration)
animation.write_gif(“heart.gif”, fps=20)
使用Mayavi
使用方法和Moviepy非常相似,这里省略几行代码。 由于Mayavi依赖强大的ITK可视化引擎,可以考虑通过Mayavi处理复杂的数据集,制作3D数据或交互数据。
动画可以更客观直观地展示一些结果。 本文将展示功能:
使用matplotlib.animate
代码如下:
import numpy as np
将 matplotlib.pyplot 导入为 plt
从 matplotlib.animation 导入 FuncAnimation
图,ax = plt.subplots()
铂。 轴(’等于’)
铂。 轴(’关闭’)
xdata, ydata = np.linspace(-2*np.pi, 2*np.pi, 1000), []
temp1, temp2 = np.power(np.square(xdata),0.33), 0.9*np.sqrt(3.3-np.square(xdata))
ln, = ax.plot([], [], ‘r-‘, animated=False)
定义初始化():
ax.set_xlim(-np.pi, np.pi)
斧头。 set_ylim(-2, 3)
返回ln,
定义更新(n):
ydata = temp1 temp2*np.sin(n*np.pi*xdata)
ln. set_data(xdata,ydata)
返回ln,
ani = FuncAnimation(fig, update, frames=np.linspace(0, 20, 100), init_func=init, blit=True)
plt.show()
Matplotlib.animate绘图函数FuncAnimation(fig, func, frames, init_func, interval, blit)参数说明:
- fig For canvas
- func是自定义的动画函数
- frames是func的frame 参数个数
- init_func自定义初始化函数
- interval更新频率,毫秒
li>
- blit表示更新所有数据,或者新的数据点,是一个布尔值
和Moviepy
需要安装Moviepy,可以通过matplotlib自定义一个动画函数。 您需要使用 mplfig_to_npimage 转换画布对象,然后使用 VideoClip 将其导出为 gif 或 MP4 视频格式。 代码如下:
import matplotlib.pyplot as plt
将 numpy 导入为 np
从 moviepy.video.io.bindings 导入 mplfig_to_npimage
将 moviepy.editor 导入为 mpy
持续时间 = 20
fig_mpl, ax = plt.subplots(1,figsize=(5,3), facecolor=’white’)
铂。 轴(’等于’)
铂。 轴(’关闭’)
xdata, ydata = np.linspace(-2*np.pi, 2*np.pi, 1000), []
temp1, temp2 = np.power(np.square(xdata),0.33), 0.9*np.sqrt(3.3-np.square(xdata))
ax.set_xlim(-np.pi, np.pi)
斧头。 set_ylim(-2, 3)
line, = ax.plot([], [], ‘r-‘)
def make_frame_mpl(t):
ydata = temp1 temp2*np.sin(t*np.pi*xdata)
line.set_data(xdata,ydata)
返回 mplfig_to_npimage(fig_mpl)
动画=mpy.VideoClip(make_frame_mpl, duration=duration)
animation.write_gif(“heart.gif”, fps=20)
使用Mayavi
使用方法和Moviepy非常相似,这里省略几行代码。 由于Mayavi依赖强大的ITK可视化引擎,可以考虑通过Mayavi处理复杂的数据集,制作3D数据或交互数据。