没有合适的资源?快使用搜索试试~ 我知道了~
matplotlib秘技:让可视化图形动起来1
需积分: 0 1 下载量 44 浏览量
2022-08-03
19:36:38
上传
评论
收藏 603KB PDF 举报
温馨提示
试读
11页
2. import pandas as pd 3. import seaborn as sns 5. import matplotlib.pyplot as p
资源详情
资源评论
资源推荐
matplotlib
秘
技
:
让
可
视
化
图
形
动
起
来
V. Kakerbeck
来
源
:
论
智
未经允许,禁止二次转载
编者按:其实matplotlib有一个少有人知的功能animation.FuncAnimation,可以接受
你编写的动画函数创建动图。Viviane Kakerbeck通过一个例子展示了这一功能的用
法,并介绍了通过增强数据和高斯平滑,让动图更美观的技巧。
美
国
的
过
量
服
用
海洛
因
致
死
数
,
使
用
seaborn
创
建
Python的matplotlib和seaborn是非常好用的绘图库。但它们创建的都是静态图像,难以通
过动态、美观的方式描述数据值的变化。如果你的下一次演示或者下一篇博客文章,能用动
态图形展示数据的发展,该有多好?更妙的是,你可以继续使用matplotlib、seaborn或者
其他你喜欢用的库。
我最近为一部关于美国的阿片样物质危机的纪录片制作了一些动态图形,所以我会在这篇文
章中使用相关的数据。数据来自美国国家药物滥用研究所和CDC的公开数据,可以从以下网
址 下 载 : https://www.drugabuse.gov/sites/default/files/overdose_data_1999-
2015.xls
本文将使用matplotlib和seaborn绘制图形,同时使用numpy和pandas处理数据。matplotlib
提供了一些可以用来制作动画的函数。闲话少叙,让我们开始吧,首先,是引入所有依赖。
1. import numpy as np
2. import pandas as pd
3. import seaborn as sns
4. import matplotlib
5. import matplotlib.pyplot as plt
6. import matplotlib.animation as animation
然后我们加载数据,将其转换成pandas的DataFrame。我还编写了一个辅助函数,可以从感
兴趣的行加载数据,之后绘图会用到。
1. overdoses = pd.read_excel('overdose_data_1999-2015.xls',sheetname='Online',skiprows =6)
2. def get_data(table,rownum,title):
3. data = pd.DataFrame(table.loc[rownum][2:]).astype(float)
4. data.columns = {title}
5. return data
准备就绪,下面是本文主要部分,如何绘制动画。
首 先 , 如 果 你 和 我 一 样 , 用 的 是 jupyter notebook , 那 么 我 建 议 你 使 用 %matplotlib
notebook指令,这样可以直接在notebook中查看动画效果,无需等待保存后再查看。
我使用了之前编写的辅助函数get_data取得海洛因服用过量数,并将其封装入一个两列的
pandas DataFrame,一列表示年份,一列表示服用过量数。
1. %matplotlib notebook
2. title = 'Heroin Overdoses'
3. d = get_data(overdoses,18,title)
4. x = np.array(d.index)
5. y = np.array(d['Heroin Overdoses'])
6. overdose = pd.DataFrame(y,x)
7. #XN,YN = augment(x,y,10)
8. #augmented = pd.DataFrame(YN,XN)
9. overdose.columns = {title}
接着我们初始化一个写入器(writer),基于ffmpeg记录20 fps(比特率为1800)。当然,
你可以按照需要调整这些参数。
1. Writer = animation.writers['ffmpeg']
2. writer = Writer(fps=20, metadata=dict(artist='Me'), bitrate=1800)
接下来创建一个带标签的图形。别忘了限定x轴和y轴的范围,以免动画在显示数据时出现跳
跃现象。
剩余10页未读,继续阅读
月小烟
- 粉丝: 27
- 资源: 296
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0