简单的matplotlib动画。

celluloid的Python项目详细描述


赛璐珞

Build Statuscodecovpypipypi versions

简易matplotlib动画

创建动画应该很容易。 这个模块使你很容易适应你现有的可视化代码来创建动画。

安装

pip install celluloid

手动

遵循以下步骤:

  1. 创建matplotlib Figure,并从中创建Camera
fromcelluloidimportCamerafig=plt.figure()camera=Camera(fig)
  1. 重复使用图形并在创建每个帧后,使用相机拍摄快照。
plt.plot(...)plt.fancy_stuff()camera.snap()
  1. 捕获所有帧后,创建动画。
animation=camera.animate()animation.save('animation.mp4')

整个module不到50行代码。

示例

最小值

尽可能简单。

frommatplotlibimportpyplotaspltfromcelluloidimportCamerafig=plt.figure()camera=Camera(fig)foriinrange(10):plt.plot([i]*10)camera.snap()animation=camera.animate()

子批次

动画在顶部。

importnumpyasnpfrommatplotlibimportpyplotaspltfromcelluloidimportCamerafig,axes=plt.subplots(2)camera=Camera(fig)t=np.linspace(0,2*np.pi,128,endpoint=False)foriint:axes[0].plot(t,np.sin(t+i),color='blue')axes[1].plot(t,np.sin(t-i),color='blue')camera.snap()animation=camera.animate()

图像

域着色示例。

importnumpyasnpfrommatplotlibimportpyplotaspltfrommatplotlib.colorsimporthsv_to_rgbfromcelluloidimportCamerafig=plt.figure()camera=Camera(fig)forainnp.linspace(0,2*np.pi,30,endpoint=False):x=np.linspace(-3,3,800)X,Y=np.meshgrid(x,x)x=X+1j*Yy=(x**2-2.5)*(x-2.5*1j)*(x+2.5*1j) \
        *(x-2-1j)**2/((x-np.exp(1j*a))**2*(x-np.exp(1j*2*a))**2)H=np.angle(y)/(2*np.pi)+.5r=np.log2(1.+np.abs(y))S=(1.+np.abs(np.sin(2.*np.pi*r)))/2.V=(1.+np.abs(np.cos(2.*np.pi*r)))/2.rgb=hsv_to_rgb(np.dstack((H,S,V)))ax.imshow(rgb)camera.snap()animation=camera.animate()

图例

importmatplotlibfrommatplotlibimportpyplotaspltfromcelluloidimportCamerafig=plt.figure()camera=Camera(fig)foriinrange(5):t=plt.plot(range(i,i+5))plt.legend(t,[f'line {i}'])camera.snap()animation=camera.animate()

限制

  • 所有绘图的轴限制应相同。动画的界限将是最终情节的界限。
  • 图例将从以前的帧中累积。将艺术家传递到legend函数以分别绘制他们。

学分

灵感来自plotnine

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java重写父类中的特定行   java Apache Commons CLI订购帮助选项?   java如何将数据添加到网格视图   java如何在Apache Camel批处理后移动文件?   java如何为日期范围的between子句编写hql查询?   雅加达ee开始Java编程,我应该从哪里开始?   排序Java8+流:检查我的objectinstances的两个字段的列表顺序是否正确   java如何将json转换为Map<String,Object>确保整数为整数   java不能在Spring数据JPA批处理过程中创建TransactionException   java损坏的PDF文件从FTP下载到使用Apache Common Net的设备   java无法使用Spring批处理和Wso2为XML架构命名空间找到Spring NamespaceHandler   java Android ImageView未显示在SherlockFragment中   Maven在构建时出错=无法识别Java路径   java如何使用批处理文件调用关闭处理程序?   java admob广告横幅重叠我的游戏屏幕安卓