可视化
分类
python可视化库可以大致分为几类:
基于matplotlib的可视化库
基于JS的可视化库
基于上述两者或其他组合功能的库
基于matplotlib的可视化库
matplotlib
matplotlib 是python可视化库的基础。matplotlib库的设计参考了matlab,甚至连名称也是以“mat”开头。
matplotlib库的一些优势:(翻译比较别扭,英文原文也附后)
设计很像Matlab,容易进行转换(Designed like Matlab: switching was easy)
有很多渲染后端(Many rendering backends)
差不多可以绘制任何图(当然需要花费些努力)(Can reproduce just about any plot with a bit of effort)
有长时间良好运行的历史 (Well-tested, standard tool for over a decade)
matplotlib库的一些缺点:
必须要掌握API,且描述较为冗长(API is imperative & often overly berbose)
有时候默认的样式设计比较弱(Sometimes poor stylistic defaults)
对网页以及交互式绘图的支持较弱(Poor support for web/interactive graphs)
数据量大时经常运行较慢(Often slow for large & complicated data)
Pandas
可能我们平时使用pandas时更多的是用来进行数据分析和处理,其实pandas也提供了较为简单的API来进行图形绘制。
我个人一般是用pandas来处理数据,然后结合其他可视化库(如matplotlib,seaborn,bokeh等)来绘图图形。
seaborn
Seaborn是基于matplotlib的Python可视化库。它提供了一个高级别接口用于图形绘制。
Seaborn在matplotlib的基础上进行了更高级的API封装,从而使得作图更加容易,在大多数情况下使用seaborn就能做出很具有吸引力的图。
基于JavaScript的可视化库
两个受欢迎度较高的可视化库 bokeh 和 plotly
bokeh
Bokeh (Bokeh.js) 是一个 Python 交互式可视化库,支持现代化Web浏览器,提供非常完美的展示功能。
Bokeh 的目标是使用 D3.js样式提供优雅,简洁新颖的图形化风格,同时提供大型数据集的高性能交互功能。
Boken 可以快速的创建交互式的绘图,仪表盘和数据应用。
plotly
Plotly是另一个免费进行数据分析和绘制图表的APP,建立在d3.js上。
Plotly图可下载为SVG,EPS或PNG格式,并简单地导入到Illustrator或者Photoshop中。
跟bokeh类似,也可以制作一些交互式的web图。
其他综合类型库
Holoviews
Holoviews能够让用户构建有助于可视化的数据结构,而且它包含丰富的可组合元素库,可以覆盖、嵌套和轻松定位。同时,它还支持快速数据探索。
Holoviews可以和Seaborn、pandas或者bokeh组合使用。
Altair
Altairs起源于D3,但代码编写量要比D3简单。这里有两幅对比的图如下:
Altair 是 Python 高级声明式可视化库。
Altair 提供一个 Python API 在声明式 manner 中构建静态统计可视化库。
什么是声明式可视化库呢,不管是翻译成中文的名称还是看英文的名称,我都一脸懵圈。
总的来说,Altairs让开发者们更专注于数据及他们之间的关系,而不是一些不重要的细节。