京公网安备 11010802034615号
经营许可证编号:京B2-20210330
作者:俊欣
来源:关于数据分析与可视化
一般提及数据可视化,会Python的读者朋友可能第一时间想到的就是matplotlib模块或者是seaborn模块,而谈及绘制动态图表,大家想到的比较多的是Plotly或者是echarts/' style='color:#000;font-size:inherit;'>Pyecharts。
今天小编来为大家介绍另外一个绘制动态图表的模块,使用起来也是非常的便捷,而且绘制出来的图表也是十分的精湛好看,它叫pygal,相比较seaborn等常用的模块相比,该模块的优点有:
因此,pygal模块小编以为还是值得拿出来讲讲的,我们大致会说这些内容:
模块的安装十分的简单,通过pip install就能够实现,
pip install pygal
当然国内的小伙伴要是觉得下载的速度慢,也可以通过加入第三方的镜像来提速
pip install -i http://pypi.douban.com/simple/ pygal
view = pygal.Bar() #图表名 view.title = '柱状图' #添加数据 view.add('数据', [1,3,5,7,9,11]) #在浏览器中查看 #view.render_in_browser() view.render_to_file('bar.svg')
output
我们既可以通过render_to_file()方法来导出成文件,也可以通过render_in_browser()方法在浏览器中查看
我们再来看多列柱状图的绘制,代码如下
view.add('奇数', [1,3,5,7,9,11])
view.add('偶数', [2,4,6,8,10,12])
output
要是我们想将柱状图横过来看,将上述代码当中的一小部分替换成
view = pygal.HorizontalBar()
output
而要是我们想要堆叠形式的柱状图,则需要将上述代码当中的一小部分替换成
view = pygal.HorizontalStackedBar()
output
对于折线图的绘制,其实与上面柱状图的绘制基本一致,我们直接来看代码
view = pygal.Line() #图表名 view.title = '折线图' #添加数据 view.add('奇数', [1,3,5,7,9,11])
view.add('偶数', [2,4,6,8,10,12]) #在浏览器中查看 view.render_in_browser()
output
也和上面柱状图的代码逻辑保持一致,折线图中也有堆叠式的折线图,只需要将上面的代码当中的一部分替换成
view = pygal.StackedLine(fill=True)
同样,饼图的绘制也是相似的代码逻辑
view = pygal.Pie() #图表名 view.title = '饼状图' #添加数据 view.add('A', 23)
view.add('B', 40)
view.add('C', 15)
view.render_to_file('pie.svg')
output
同时我们也可以绘制圆环图,在饼图的中心掏空出来一块,代码大致相同,只是需要将上面的一小部分替换成
#设置空心圆半径 view = pygal.Pie(inner_radius=0.4)
output
当我们每个类当中不止只有一个数字的时候,可以绘制多级饼图,代码如下
view = pygal.Pie() #图表名 view.title = '多级饼图' #添加数据 view.add('A', [20, 25, 30, 45]) view.add('B', [15, 19, 25, 50]) view.add('C', [18, 22, 28, 35]) view.render_to_file('pie_multi.svg')
output
雷达图可以帮我们从多个维度来分析数据,例如我们分析运动员的运动能力的时候,就会从多个维度来综合看待,这个时候雷达图就变得非常有用,代码如下
radar_chart = pygal.Radar()
radar_chart.title = 'NBA 各球员能力比拼' radar_chart.x_labels = ['得分', '防守', '助攻', '失误', '篮板']
radar_chart.add('库里', [70, 98, 96, 85, 97])
radar_chart.add('詹姆斯', [60, 95, 50, 75, 99])
radar_chart.add('杜兰特', [94, 45, 88, 91, 98])
radar_chart.render_to_file('radar_nba.svg')
output
当然上面的数据都是瞎编的,喜欢NBA的读者朋友或者是喜欢上面几个球形的读者朋友看了可别喷我哦
箱型图可以快速地帮我们了解数据的分布,查看是否存在极值。在pygal模块当中也提供了绘制箱型图的方法,代码如下
box_plot = pygal.Box() box_plot.title = '各浏览器的使用量' box_plot.add('Chrome', [6395, 8212, 7520, 7218, 12464, 1660, 2123, 8607]) box_plot.add('Firefox', [7512, 8099, 11700, 2651, 6361, 1044, 8502, 9450]) box_plot.add('360安全卫士', [3472, 2933, 4203, 5510, 5810, 1828, 9013, 4669]) box_plot.add('Edge', [4310, 4109, 5935, 7902, 14404, 13608, 34004, 10210]) box_plot.render_to_file("box.svg")
output
仪表盘可以帮助我们量化指标的好坏,代码如下
gauge_chart = pygal.Gauge(human_readable=True)
gauge_chart.title = '不同浏览器的性能差异' gauge_chart.range = [0, 10000]
gauge_chart.add('Chrome', 8212)
gauge_chart.add('Firefox', 8099)
gauge_chart.add('360安全卫士', 2933)
gauge_chart.add('Edge', 2530)
gauge_chart.render_to_file('gauge_1.svg')
output
热力图可以更加直观的观测每个区域当中数据的分布,代码如下
treemap = pygal.Treemap() treemap.title = 'Binary TreeMap' treemap.add('A', [12, 15, 12, 40, 2, 10, 10, 13, 12, 13, 40, None, 19]) treemap.add('B', [4, 2, 5, 10, 30, 4, 2, 7, 4, -10, None, 8, 30, 10]) treemap.add('C', [3, 8, 3, 3, 5, 15, 3, 5, 4, 12]) treemap.add('D', [23, 18]) treemap.add('E', [11, 2, 1, 12, 3, 13, 1, 2, 13, 14, 3, 1, 2, 10, 1, 10, 12, 1]) treemap.add('F', [31]) treemap.add('G', [15, 9.3, 8.1, 12, 4, 34, 2]) treemap.add('H', [12, 13, 3]) treemap.render_in_browser()
output
首先我们来看世界地图的绘制,在这之前,我们还要下载绘制整个世界地图所需要的插件
pip install pygal_maps_world
代码如下
worldmap_chart = pygal.maps.world.World()
worldmap_chart.title = 'Some countries' worldmap_chart.add('A countries', ['国家名称的缩写'])
worldmap_chart.add('B countries', ['国家名称的缩写'])
worldmap_chart.add('C countries', ['国家名称的缩写'])
worldmap_chart.render_in_browser()
output
我们也可以针对不同国家的计数来进行地图的绘制,例如不同国家重大疾病的死亡人数,代码如下
worldmap_chart = pygal.maps.world.World()
worldmap_chart.title = 'Minimum deaths by capital punishement (source: Amnesty International)' worldmap_chart.add('In 2012', { '国家名称的缩写': 数量, '国家名称的缩写': 数量,
.....
})
worldmap_chart.render_in_browser()
output
我们也可以绘制以五大洲为主的世界地图,代码如下
worldmap_continent = pygal.maps.world.SupranationalWorld()
worldmap_continent.add('Asia', [('asia', 1)])
worldmap_continent.add('Europe', [('europe', 1)])
worldmap_continent.add('Africa', [('africa', 1)])
worldmap_continent.add('North america', [('north_america', 1)])
worldmap_continent.add('South america', [('south_america', 1)])
worldmap_continent.add('Oceania', [('oceania', 1)])
worldmap_continent.add('Antartica', [('antartica', 1)])
worldmap_continent.render_in_browser()
output
当然我们也可以将某个国家作为绘制,例如我们以法国为例,首先我们需要下载绘制单独某个国家的地图所依赖的插件
pip install pygal_maps_fr
代码如下
fr_chart = pygal.maps.fr.Regions()
fr_chart.title = '法国区域图' fr_chart.add('区域名称', ['数量'])
fr_chart.render_in_browser()
output
但是提及绘制某个国家的地图而言,目前支持的国家的数量并不多,在官网上面也只罗列法国和瑞士这两个国家,其他国家的插件下载,小编尝试下载了一下,都下载不了,后面就等官方的更新与优化把
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
CDA数据分析师 出品 作者:李诗怡 1. IF:基础条件判断(最常用) 作用:根据指定条件的真(TRUE)或假(FALSE),返回两种不同 ...
2026-10-30“不限专业可以考的证书”这个搜索词背后,通常藏着一个很实际的担心:专业不对口,想考个证拓宽出路,但怕报了名才发现有专业限 ...
2026-10-30先回答:能考的多是技能实操类证书 40岁、初中学历,能报的证书主要集中在四类:职业技能等级证书、专项职业能力证书、特种作业 ...
2026-10-3030岁考什么证好找工作,没有一张“通用答案”。同样的证书,对有行业经验的人和准备跨行的人,价值完全不同。更实际的思路是:先 ...
2026-10-30“专业职业技术资格证书”并不是一个正式名称,而是把好几种证书混在一起的口语说法。有人用它指会计、经济这类职称考试,有人指 ...
2026-10-30大学生能考的证书,大致分四类:通用基础类、职业资格类、专业技术资格类、岗位技能与行业认证类。真正要解决的问题不是“还有哪 ...
2026-10-30“需要考哪些证书”这个问题,没有统一答案。因为“需要”至少分三种:有的证书是入职准入,没有它连岗位门槛都进不去;有的证书 ...
2026-10-30“现在什么证含金量高好考一些”,这个问题里其实藏着两个容易打架的条件。含金量高的证书,往往有报考门槛、考试周期长;好考的 ...
2026-10-30“现在考什么证最吃香”,这个问题本身藏着一个容易踩的坑:不同人说“吃香”,指的往往不是同一件事。有人指考的人多、话题热; ...
2026-10-30文凭低,不等于没证可考,但选择空间确实窄一些。学历门槛明确的准入类资格,比如部分教师资格、法律职业资格、执业医师等,通常 ...
2026-10-30土建专业的大学生问“考什么证”,最容易踩的坑是把注册类证书当成在校目标。注册建造师、注册造价工程师、注册结构工程师、监理 ...
2026-10-30中年男人考证书,最怕两件事:一是年龄、学历卡在报名门槛外,白准备半年;二是考完发现岗位用不上,钱和时间都打了水漂。所以顺 ...
2026-10-30大专学历能考的证书不少,但真正值得投入时间的,是先确认“能不能报”,再看“考了对应什么岗位”。很多证书的报考条件里写着本 ...
2026-10-30“十大建议考的证书”这个问题,很难有一份对所有人都成立的名单。同一张证书,对会计专业大三学生、想转行做数据分析的运营、以 ...
2026-10-30“什么证书有用含金量高”这个问题,很难用一张榜单回答。同一本证书,对想进医院的人可能是硬门槛,对做运营的人却用不上;对已 ...
2026-10-30在职成年人问“考什么证书有用”,先要弄清自己需要哪一种“有用”。同一张证书,对想进入准入行业的人、想在本岗晋升的人、想转 ...
2026-10-30“女生能考的证书”真正要先回答的是“你现在的条件能报什么”。学历、专业、工作年限、是否在校、所在地区政策,直接决定你能不 ...
2026-10-30“女孩考什么证书比较好”这句话里,“比较好”其实藏着三种完全不同的标准:好考,看的是报考门槛低、备考周期短;好就业,看的 ...
2026-10-30先给结论:市场岗位没有一张通吃的证书。品牌传播、数字营销与投放、用户增长、用户研究、营销数据分析,这五条路径对应的工作任 ...
2026-10-30经济学专业考什么证书,没有统一答案。经济学毕业后去向很散:有人进银行、证券、基金,有人做财务审计,有人转数据分析与经营分 ...
2026-10-30