最近因为工作,需要用到 holoviews 库
对于 python 小白的我,面对网上一堆英文资料和运行不了的 demo 。简直非常不友好,差点一命归西。
今天就记录一下我学习 holoviews 的过程。
1.介绍 holoviews 库
holoviews 库,我的理解,就是可以完成有交互的可视化库。
简单来说,如果使用 matplotlib 能画出一张图片格式的,图表的话。
那么你使用 holoviews 库就可以生成一张网页格式的,可以具有交互的图表。
2.瞅一瞅官方文档
其实官方文档提供了很多详细的案例。
但是由于外网卡,全英文,也不知道为何 demo 还不能直接运行,一度怀疑人生。
(后来别人告诉我,原来是工具不对)
今天我用开发工具是:pycharm。
3.举一个例子,简单理解 holoviews 的使用
我选择的是,官网的第一个案例进行尝试
初始化设置
import holoviews as hv
import pandas as pd
hv.extension('bokeh')
hv.output(fig='html', size=300)
首先导入了 holoviews 库,由于我的数据是csv格式的,所以还导入了 pandas 库。
接下来进行了 hv的设置,扩展使用 bokeh库。
设置了图表的输出格式html格式,大小是300。
导入数据
data = pd.read_csv('seven.csv',index_col=0,header=0)
germany_data = data.loc['德国'].values
france_data = data.loc['法国'].values
britain_data =[1000,2000,3000,4000,5000]
我导入了2组CSV里面的数据,为了做对比,我把最后一组英国的数据,改成了一个列表。
这里从CSV文件里取出的数据,不能包含国家名字,不然会报错。
生成图表
dims =dict(kdims='时间/天', vdims='新增肺炎人数')
l1 = hv.Area(germany_data, label='法国', **dims)
l2 = hv.Area(britain_data, label='英国', **dims)
l3 = hv.Area(france_data, label='德国', **dims)
overlay = (l1*l2*l3)
hv.save(overlay, 'a.html', fmt='html')
我们用字典生成了描述信息
通过 hv.Area()方法,添加了3组数据,生成了3条折线。
(参数1:数据 参数2:选项卡名字 参数3:字典描述信息)
最后,把图表输出成一个html的网页文件
展示
4.小结
由于我的需求比较简单,对holoviews的探索就止步于此了。
我的理解holoviews库,是在轮子上造轮子。优势在于语法简单,案例丰富,效果强大。但是可能是因为我刚接触可视化,对它扩展使用的 bokeh库不熟悉,导致还是花了一些时间来研究。
希望这篇文章,对和我一样的小白有所帮助吧。