当前位置: 首页 > article >正文

【动态绘图】python可视化--丝滑版

✅作者简介:在读博士,伪程序媛,人工智能领域学习者,深耕机器学习,交叉学科实践者,周更前沿文章解读,提供科研小工具,分享科研经验,欢迎交流!
📌个人主页: https://blog.csdn.net/allein_STR?spm=1011.2559.3001.5343
💯特色专栏:深度学习和WRF,提供人工智能方方面面小姿势,从基础到进阶,教程全面。
📞联系博主:博文留言+主页底部联系方式+WeChat code: Allein_STR
📙本文内容:【动态绘图】python可视化

先看一下效果图:

使用方法:

import pynimate as nim

输入数据后,Pynimate将使用函数Barplot()来创建条形数据动画

输入的数据必须是pandas数据结构(如下),其中将时间列设置为索引,换句话说索引代表的是自变量。

time

col1

col2

col3

2012

1

2

1

2013

1

1

2

2014

2

1.5

3

2015

2.5

2

3.5

例子代码:

from matplotlib import pyplot as plt
import pandas as pd
import pynimate as nim

df = pd.DataFrame(
    {
        "time": ["1960-01-01", "1961-01-01", "1962-01-01"],
        "Afghanistan": [1, 2, 3],
        "Angola": [2, 3, 4],
        "Albania": [1, 2, 5],
        "USA": [5, 3, 4],
        "Argentina": [1, 4, 5],
    }
).set_index("time")

cnv = nim.Canvas()
bar = nim.Barplot(df, "%Y-%m-%d", "2d")
bar.set_time(callback=lambda i, datafier: datafier.data.index[i].strftime("%b, %Y"))
cnv.add_plot(bar)
cnv.animate()
plt.show()

结果图为:

注意点:

  1. 要制作条形数据动画,Barplot还有三个必需的参数得注意:datatime_formatip_freq(Interpolation frequency)。

  • data就是表格的数据,这里也就不再赘述。

  • time_format是指数据索引的时间日期格式,一般为:”%Y-%m-%d”。

  • ip_freq,它是制作动画中比较关键的一步,通过线性插值使动画更加流畅丝滑。

  1. 具体的插值时间间隔为多久,则要视具体的数据而定,一般绘制大数据时,设置为ip_freq = None

  1. 保存动画,有两个格式可以选择:gif或者mp4。

  • 保存为动图一般使用:

cnv.save("file", 24, "gif")
  • 若要保存为mp4的话,ffmpeg是个不错的选择,它是保存为mp4的标准编写器。

pip install ffmpeg-python

或者

conda install ffmpeg
  • 也可以使用Canvas.save()来保存。

cnv.save("file", 24 ,"mp4")

END


本篇到这里就结束了。想学习更多Python、人工智能、交叉学科相关知识,点击关注博主,带你从基础到进阶。若有需要提供科研指导、代码支持,资源获取或者付费咨询的伙伴们,可以添加博主个人联系方式!

码字不易,希望大家可以点赞+收藏+关注+评论!

声明:部分内容来源于网络,仅供读者学术交流之目的。文章版权归原作者所有。如有不妥,请联系删除。


http://www.kler.cn/a/5870.html

相关文章:

  • Apache Sedona和Spark将geojson瓦片化例子
  • 6 分布式限流框架
  • rk3568 , buildroot , qt ,使用sqlite, 动态库, 静态库
  • [0405].第05节:搭建Redis主从架构
  • 前端用json-server来Mock后端返回的数据处理
  • 企业级PHP异步RabbitMQ协程版客户端 2.0 正式发布
  • 10秒去除WPS Office弹窗广告教程(2023.3.31最新)
  • ThreeJS-纹理加载进度(十四)
  • 小驰私房菜_02_Qcom 高通平台 新增加driver,需要准备哪些东西?
  • IOC和AOP以及spring框架
  • LeetCode-583. 两个字符串的删除操作
  • Centos7安装Redis
  • Ai智能时代即将到来,替代程序员还是相辅相成,我们拭目以待
  • 12 个非常实用的 JavaScript 函数
  • 自助式分析是数据组织的一种状态
  • 分散加载(2)---分散加载文件执行机制
  • Leetcode.939 最小面积矩形
  • 算法学习day46
  • 详细手把手教会二叉树链式结构【数据结构】
  • 【数据库管理】①实例与数据库
  • Springboot: Tomcat很好我选Undertow
  • ShareSDK Android 第三方平台分享参数说明
  • MySQL - 基于SSL安全连接的主从复制
  • 蓝桥杯31天真题冲刺|题解报告|第二十三天
  • Python中编码【encode】解码【decode】讲解
  • k8s qos等级