HoloViews库一个被忽视的高级的python的数据可视化库
1 说明:
=====
1.1 HoloViews是PyViz的产品之一,而且其提供了Bokeh,matplotlib和Datashader可视化库的扩展。
1.2 HoloViews库用来制作数据可视化,比bokeh和matplotlib更方便、更简洁,是一个python库文件。
1.3 基于jupyter的可交互的,当然还可以生成html和svg等格式。
1.4 目前国内中文教程基本没有,我来介绍一下。
2 准备:
=====
2.1 官网:https://github.com/holoviz/holoviews https://holoviews.org/ https://holoviews.org/gallery/index.html
2.2 安装:pip install holoviews #本机安装 sudo pip3.8 install holoviews
2.3 环境:
华为笔记本电脑、深度deepin-linux操作系统、谷歌浏览器、python3.8和微软vscode编辑器。
3 散点图:
=======
3.1 基本散点图:
3.1.1 代码:注意#%%是一个单元cell#%% #基本散点图 import holoviews as hv from holoviews import opts hv.extension("bokeh") #hv.extension("matplotlib") #不是随便这样就可以切换matplotlib的 x = ["a", "b", "c", "d", "e", "f", "g", "h"] y = [50, 40, 65, 10, 25, 37, 80, 60] scatter = hv.Scatter((x, y)) overlay=scatter.opts( #设置散点大小、填充颜色和圆边线颜色,图标fig的大小 opts.Scatter(size=15, fill_color="orange", line_color="green",width=400, height=400), ) #%% overlay #%% #保存文件 hv.save(overlay,filename="/home/xgj/Desktop/holoviews/12-scatter-1.html")
3.1.2 操作和效果图:
3.2 垂直气球图:
3.2.1 代码:#垂直气球图 #Spikes+Scatter import holoviews as hv from holoviews import opts hv.extension("bokeh") x = ["a", "b", "c", "d", "e", "f", "g", "h"] y = [50, 40, 65, 10, 25, 37, 80, 60] scatter = hv.Scatter((x, y)) spikes = hv.Spikes(scatter) overlay=(spikes * scatter).opts( opts.Scatter(size=15, fill_color="orange", line_color="green",width=400, height=400), ) overlay #jupyter显示 #保存文件 hv.save(overlay,filename="/home/xgj/Desktop/holoviews/13-scatter-2.html")
3.2.2 图:
3.3 水平气球图:
3.3.1 代码:import holoviews as hv from holoviews import opts hv.extension("bokeh") x = ["a", "b", "c", "d", "e", "f", "g", "h"] y = [50, 40, 65, 10, 25, 37, 80, 60] scatter = hv.Scatter((x, y)) spikes = hv.Spikes(scatter) overlay=(spikes * scatter).opts( opts.Scatter(size=15, fill_color="orange", line_color="green",width=400, height=400), #设置杆,变成水平杆和相关定义 opts.Spikes(color="green", line_width=4, labelled=[], invert_axes=True, color_index=None), ) #保存文件 hv.save(overlay,filename="/home/xgj/Desktop/holoviews/13-scatter-3.html")
3.3.2 图:
3.4 组合复合图:
heatmap(热力图)+spikes+Scatter(水平气球图)
3.4.1 代码:import holoviews as hv from holoviews import opts hv.extension("bokeh") #散点图数据 factors = ["a", "b", "c", "d", "e", "f", "g", "h"] x = [50, 40, 65, 10, 25, 37, 80, 60] scatter = hv.Scatter((factors, x)) spikes = hv.Spikes(scatter) #热力图数据 x = ["foo", "foo", "foo", "bar", "bar", "bar", "baz", "baz", "baz"] y = ["foo", "bar", "baz", "foo", "bar", "baz", "foo", "bar", "baz"] z = [0, 1, 2, 3, 4, 5, 6, 7, 8] heatmap = hv.HeatMap((x, y, z)) #组合 overlay=(heatmap + spikes * scatter).opts( opts.Scatter(size=15, fill_color="orange", line_color="green"), opts.Spikes(color="green", line_width=4, labelled=[], invert_axes=True, color_index=None), opts.Layout(shared_axes=False)) #保存文件,指定目录和文件夹 hv.save(overlay,filename="/home/xgj/Desktop/holoviews/6-heatmap-scatter.html")
3.4.2 图:
4 面积图area:
==========
4.1 代码:import numpy as np import holoviews as hv from holoviews import opts #基于bokeh hv.extension("bokeh") #模拟数据 python=np.array([2, 3, 7, 5, 26, 221, 44, 233, 254, 265, 266, 267, 120, 111]) JavaScript=np.array([12, 33, 47, 15, 126, 121, 144, 233, 254, 225, 226, 267, 110, 130]) html=np.array([22, 43, 10, 25, 26, 101, 114, 203, 194, 215, 201, 227, 139, 160]) #x坐标是kdims,y坐标是vdims dims = dict(kdims="time", vdims="memory") python = hv.Area(python, label="python", **dims) JavaScript = hv.Area(JavaScript, label="JavaScript", **dims) html = hv.Area(html, label="html", **dims) #在opts中的opts的Area中可设置图标fig的大小 #默认估计是200和200,比较小 opts.defaults(opts.Area(fill_alpha=0.5,width=400, height=400)) overlay = (python * JavaScript * html) #图表的标题名 overlay.relabel("Area Chart") #保存文件 hv.save(overlay,filename="/home/xgj/Desktop/holoviews/1-area.html")
4.2 图:
5 curve曲线图:
==========
5.1 代码:#curve曲线图 import holoviews as hv from holoviews import opts hv.extension("bokeh") #模拟数据 stamp = [.33, .33, .34, .37, .37, .37, .37, .39, .41, .42, .44, .44, .44, .45, .46, .49, .49] postcard = [.20, .20, .21, .23, .23, .23, .23, .24, .26, .27, .28, .28, .29, .32, .33, .34, .35] #标题名 group = "U.S. Postage Rates (1999-2015)" #曲线图设置 stamp = hv.Curve(stamp, vdims="Rate per ounce", label="stamp", group=group) postcard = hv.Curve(postcard, vdims="Rate per ounce", label="postcard", group=group) postage = (stamp * postcard) postage.opts( #曲线图设置,大小和样式 opts.Curve(interpolation="steps-mid", width=400, height=400, line_dash=hv.Cycle(values=["dashed", "solid"])), #图例位置 opts.Overlay(legend_position="top_left") ) hv.save(postage,filename="/home/xgj/Desktop/holoviews/2-curve.html")
5.2 图:
附注3张高级图,代码省略。
===自己整理并分享出来===
喜欢的人,请点赞、关注、评论、转发和收藏。
要是喜欢的人多了,以后有机会出教程。
绘本买来也不看,让孩子阅读太难?三步教你让孩子爱上阅读大家好!我是致力于推广儿童阅读的细雨老师,欢迎你们来到细雨阅读!经常听到很多家长反映和抱怨,说自己家孩子买来的绘本基本都不看,要不就是翻两下就放在角落里落灰了,所以一提到让孩子养成
有没有人和我一样怀孕7个多月了还要做饭的?我在孩子出生的前一天还做饭做家务。只要身体好,做饭是没问题的,除非身体不舒服,不适合动来动去。孕妇是要多注意,但也没那么娇气,适当活动还利于孩子出生,在活动的过程避免一些重活累活拉
比较好的母婴奶粉有哪些?我家宝宝吃的奶粉种类还真有点多。比如,喜宝,爱他美。宾博,君乐宝,我觉得都挺好的。没有上火,也没有便秘。奶粉最重要的是看孩子能否吸收,是否适合孩子的口味,配方其实都大同小异,有时候
浅谈生命密码育儿读懂孩子,用生命密码反激励孩子大家好,我是生命密码幸福习习社沐言。因为我们是密码之家,两个孩子虽然很小,但是都知道生命密码。儿子在7岁的时候,甚至已经学会了画生命密码图。而5岁不到的女儿,也慢慢的开始被我们影响
孕晚期怎么让肚子不长太大?答简言之就是管住嘴迈开腿呲牙1。适当运动,尤其是饭后,我觉得比较适合孕妇的较为安全的运动首推散步,如果胎宝醒了,正好可以开展语言胎教,和胎宝说说优美的风景2。饮食方面少吃甜食(包括
国药育儿知识为啥宝宝都爱挖掘机?原来其中藏着成长的小学问不知道家长们有没有发现,宝宝2岁左右的时候会突然对挖掘机特别感兴趣,尤其是男宝宝,可能平时玩游戏都没法专注,但一旦在路上遇到一台工作中的挖掘机,看二十分钟都嫌不够。不仅如此,宝宝们
宝爸自学第十一天照顾早产儿父母应该知道的几点在中国,每年2000万新出生的婴儿中早产儿早产儿比例达到10。几乎60的双胞胎三胞胎和其他多胎分娩导致早产。重要的是要认识到早产,即使是早产,也不应该为了母亲或产科医生的方便而进行
儿童医院门口的小房子为了给孩子治病,这些父母倾其所有本文由兜妈爱叨叨原创,版权所有,侵权必究为人父母,相较于望子成龙,大多数人更希望自己的孩子一辈子平平安安,健健康康。但这个看起来如此朴实的愿望对于一些家庭来说却是奢望。由于孩子身患
会说话的家长,你见过吗?前几天,一一奶奶跟我说了一件小事儿。有一天,一一很认真地问奶奶,手指什么时候能好?一个月前,一一想看看洗衣机是如何工作的,结果左手食指的指甲被洗衣机盖砸到,手指擦破了,指甲根部落下
我教女儿玩象棋这个暑期生活,愉快而有意义。一盘象棋成了我们生活中的最爱,每天都要和女儿杀几盘。女儿进步快一开始,女儿只知道马走日相走田车走一条线炮打一溜烟等等基本的象棋术语,这些还是我寒假时教给
老师让带一万颗豆,妈妈陪娃数到凌晨,质问老师却被打脸导语每个父母都有望子成龙,望女成凤的心态,每个父母都希望自己的孩子将来能够有出息,过上自己想要的生活,所以,在孩子出生的时候,父母对孩子的教育都非常的重视,甚至为了不让自己的孩子输