用python做好看的动态图像,怎样用python绘制动图

本文介绍了如何使用Python的pandas_alive库轻松制作动态图表,包括动态条形图、曲线图等,通过导入数据并调用plot_animated函数即可生成,无需额外处理数据。

大家好,本文将围绕用python做好看的动态图像展开说明,怎样用python绘制动图是一个很多人都想弄明白的事情,想搞清楚python制作动态数据图需要先了解以下几个事情。

大家好

关于动态图表,相信大家都或多或少的接触过一些,如果是代码水平比较不错的,可以选择 Matplotlib,当然也可以使用 pyecharts 的相关功能,不过这些工具都专注于图表的制作,也就是对于图表的数据,你是需要自行转换的。而今天介绍的这个可视化图库,完美的结合了 Pandas 数据格式,又辅以 Matplotlib 的强大功能,使得我们制作动图变得容易的多了小神猪

图库简介

这款给力的可视化图库,就是 pandas_alive,虽然当前在 GitHub 上的 star 数量不是很高,但是相信凭借其强大的功能,崭露头角也是迟早的事情

项目安装:
与一般的 Python 库一样,直接使用 pip 安装即可,这里有一点需要注意,就是由于是通过 Matplotlib 来制作动图,所以需要手动安装下 Matplotlib 的依赖工具 imagemagick,这是一个图片处理工具,感兴趣的同学可以自行查看下

项目功能:
这款可视化图库,可以支持的图表类型是非常多的,包括动态条形图、动态曲线图、气泡图、饼状图以及地图等等,这些图表差不多可以满足我们日常的使用了

制图简介

这里我们就来简单看一下该如何制作动态图表吧,首先是动态条形图,基本4行代码搞定,有两行还是 import

import pandas_aliveimport pandas as pdcovid_df = pd.read_csv('covid19.csv', index_col=0, parse_dates=[0])covid_df.diff().fillna(0).plot_animated(filename='line_chart.gif',kind='line',period_label={'x':0.25,'y':0.9})

怎么样,是不是超级方便呢

下面我们就来看看其他图表的制作方法吧!

01 动态条形图

import pandas_aliveimport pandas as pdcovid_df = pd.read_csv('covid19.csv', index_col=0, parse_dates=[0])covid_df.plot_animated(filename='examples/perpendicular-example.gif',perpendicular_bar_func='mean')

02 动态柱状图

import pandas_aliveimport pandas as pdcovid_df = pd.read_csv('covid19.csv', index_col=0, parse_dates=[0])covid_df.plot_animated(filename='examples/example-barv-chart.gif',orientation='v')

03 动态曲线图

import pandas_aliveimport pandas as pdcovid_df = pd.read_csv('covid19.csv', index_col=0, parse_dates=[0])covid_df.diff().fillna(0).plot_animated(filename='examples/example-line-chart.gif',kind='line',period_label={'x':0.25,'y
### 使用 Python 和 Matplotlib 制动形 Matplotlib 提供了一个功能强大的模块 `animation` 来创建动态表。下面是一个完整的例子来展示如何使用该库制作简单的动画。 #### 导入必要的库 为了实现动画效果,除了导入基础包外还需要引入 `FuncAnimation` 类: ```python import numpy as np from matplotlib import pyplot as plt from matplotlib.animation import FuncAnimation ``` #### 创建数据集 定义一些用于生成图像的数据源,在这个案例中将模拟随时间变化的一维正弦波形: ```python x_data = [] y_data = [] fig, ax = plt.subplots() ax.set_xlim(0, 10) ax.set_ylim(-1.2, 1.2) line, = ax.plot([], [], 'r') ``` #### 定义初始化函数 此部分负责设置初始状态下的画面布局以及线条样式等属性: ```python def init(): line.set_data([], []) return line, ``` #### 更新帧的内容 每次调用时都会传入一个新的参数 i 表示当前迭代次数,通过它我们可以计算新的坐标点并更新到线对象上: ```python def animate(i): x_data.append(i * 0.1) y_data.append(np.sin(i / 10 * np.pi)) line.set_xdata(x_data) line.set_ydata(y_data) return line, ``` #### 启动动画过程 最后一步就是利用 `FuncAnimation` 将上述组件组合起来形成连续播放的效果,并指定每秒刷新多少次(即帧率),这里设为30fps: ```python ani = FuncAnimation(fig, animate, frames=np.linspace(0, 100, 100), init_func=init, blit=True) plt.show() ``` 以上代码展示了怎样基于给定的时间序列构建一个简单而直观的正弦曲线动画[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值