python写动态_利用Python实现动态排名效果

实现动态排名效果(基于Python+Matplotlib)

一、背景

之前的动态排名效果很流行。已有一些成熟的工具可以使用。在接触了Matplotlib的animation模块后,想自己动手实现一下;同时希望提供一些接口,方便对动画的效果和样式进行设置。

在实现过程中遇到很多坑。比如如何利用Python调用imagemagick输出视频文件;直接plt.show()展示的效果竟然和save()出的视频效果有差异;输出的视频“不完整”。不过目前都已经解决。

相关代码已部署到Gitee中(https://gitee.com/jixuanfan/Animation),感兴趣的同学可以去玩一下~

二、应用举例

基本动画效果

DA=Dynamic_ranking('Example/test.txt',step=10,interval=2,v_space=3)

DA.Run(repeat=True,repeat_delay=2.5) #直接将动画效果显示到屏幕

DA.Run(save_path='Example/dynamic_ranking_2.gif',writer='imagemagick') #默认的writer是pillow

?i=20200519101158847.gif#pic_center

2. 可配置动画效果

DA=Dynamic_ranking('Example/test.txt',step=10,interval=2,v_space=2,bar_arg={'cmap':{'AA':'#FFAB00','BB':'#3515B0','CC':'#FFE900','DD':'#58E000','EE':'#FF3100'},'alpha':0.8})

DA.Run(repeat=True,repeat_delay=2.5) #直接将动画效果显示到屏幕

DA.Run(save_path='Example/dynamic_ranking.gif') #将动画转换为GIF输出到指定路径

?i=20200519101328251.gif#pic_center

3. 实例:近20年乒乓球男子单打排名

DA=Dynamic_ranking('Example/table_tennis.csv',step=10,interval=2,v_space=2,time_fmt='M',text_arg={'right_x_margin':13,'left_x_margin':10,'time_c':'r','time_fz':18,'name_fz':11,'time_y':0.03})

DA.Run(save_path='Example/table_tennis.gif',writer='pillow')

?i=20200519102107759.gif#pic_center

这里仅放部分效果,要查看完整效果,请前往Gitee。

更多参数请看help(Dynamic_ranking)

三、进一步改进

增加MP4格式的文件输出;

增加数据获取方式,不仅仅通过src参数指定文件路径,也可直接通过list或者ndarray/DataFrame传入数据;

进一步优化动画效果,增加更多可配置选项;

增加更多动态可视化效果。

原创不易,如果有帮助到你,麻烦点个赞~ 转载请注明出处~

标签:ranking,Run,效果,动画,Python,DA,排名,动态,Example

来源: https://blog.csdn.net/qq_35408030/article/details/106208170

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值