Python有很多优秀的可视化库,其中有名的像matplotlib、seaborn、plotly,可以绘制出各式绚丽的图表。
这次介绍一个不那么广为人知但依然优秀的可视化库-Pygal
官网介绍说Pygal是一个性感的Python制表工具,提供了14种图表类型,可以轻松定制出版级别的交互式图表。
相比较seaborn等明星库,Pygal有哪些值得一说的优点呢?
-
高度可定制,而且用法简单;
-
图表可交互性强;
-
图像可导出SVG格式(矢量图形);
-
与Django、Flask等Web框架高度集成;
Pygal支持哪些图表?
Pygal目前支持的图表有折线图、点图、柱状图、直方图、饼图、雷达图、箱图、气泡图、漏斗图、圆环图、仪表板、漏斗图、热力图、地图。
既可以在浏览器中直接查看图表,或集成到web中,也可以导出图表。
可以导出的格式有:SVG、PNG、Etree、64位URI
Pygal默认在jupyter notebook不显示,需要保存问svg、png等格式,浏览器打开查看,为了便于展示,做了如下设置可在jupyter notebook中展示。
import pygal
#设置pygal与jupyter notebook交互
from IPython.display import display, HTML
base_html = """
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://kozea.github.com/pygal.js/javascripts/svg.jquery.js"></script>
<script type="text/javascript" src="https://kozea.github.io/pygal.js/2.0.x/pygal-tooltips.min.js""></script>
</head>
<body>
<figure>
{rendered_chart}
</figure>
</body>
</html>
"""
安装并导入Pygal
使用pip或者conda进行安装,在命令行输入:
pip install pygal
几秒钟便可安装完成。
安装好后,导入Pygal:
import pygal
这里用的是Jupyter Notebook环境,好了,接下来正式绘图。
绘图步骤
Pygal的用法非常简单,主要分三步:
-
生成图表对象
-
导入数据
-
导出图像
这里简单绘制一个柱状图:
# 导入pygal库
import pygal
# 创建柱状图对象
bar_chart = pygal.Bar()
# 图表命名
bar_chart.title = 'NBA历史得分前五球星数据'
# 添加数据
bar_chart.add('贾巴尔', 38387)
bar_chart.add('马龙', 36928)
bar_chart.add('詹姆斯', 34384)
bar_chart.add('科比', 33643)
bar_chart.add('乔丹', 32292)
# 在浏览器中查看
bar_chart.render_in_browser()
# 导出为矢量图形
bar_chart.render_to_file('NBA.svg')