本文首发于微信公众号“Python数据之道”

前言

本文主要摘录自 pycon 2017大会的一个演讲,同时结合自己的一些理解。

pycon 2017的相关演讲主题是“The Python Visualization Landscape”。

先来一张全景图镇楼~~

看完这张图是不是有点懵?

别着急,我们一起来看看后面的阐述。

python可视化库可以大致分为几类:

  • 基于matplotlib的可视化库

  • 基于JS的可视化库

  • 基于上述两者或其他组合功能的库

基于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)

Matplotlib自2003年发布以来,使用情况还是呈现了良好的趋势:

Matplotlib部分绘图实例如下:

关于matplotlib,微信公众号之前写过一篇关于饼图的介绍,有兴趣的可阅览下。

关于matplotlib,你要的饼图在这里

也因此,后续开发者都吸取了matplotlib库的优点,经过对matplotlib库的缺点进行改进,从而衍生出一系列的可视化库。

基于matplotlib的库概览如下:

下面介绍两个重要的基于matplotlib的第三方库:pandas以及seaborn

Pandas

可能我们平时使用pandas时更多的是用来进行数据分析和处理,其实pandas也提供了较为简单的API来进行图形绘制。

我个人一般是用pandas来处理数据,然后结合其他可视化库(如matplotlib,seaborn,bokeh等)来绘图图形。

Pandas部分绘图实例如下:

微信公众号中部分文章的案例可供参考。

用Pandas获取商品期货价格并可视化

python求职Top10城市,来看看是否有你所在的城市

seaborn

Seaborn是基于matplotlib的Python可视化库。它提供了一个高级别接口用于图形绘制。

Seaborn在matplotlib的基础上进行了更高级的API封装,从而使得作图更加容易,在大多数情况下使用seaborn就能做出很具有吸引力的图。

关于Searbon,微信公众号之前写过一篇关于热力图的介绍文章,有兴趣的可阅览下。

Python可视化:Seaborn库热力图使用进阶

Seaborn部分绘图实例如下:

详细信息可在其官方网站查阅:

http://seaborn.pydata.org/

基于JavaScript的可视化库

两个受欢迎度较高的可视化库 bokeh 和 plotly

bokeh

Bokeh (Bokeh.js) 是一个 Python 交互式可视化库,支持现代化Web浏览器,提供非常完美的展示功能。Bokeh 的目标是使用 D3.js样式提供优雅,简洁新颖的图形化风格,同时提供大型数据集的高性能交互功能。Boken 可以快速的创建交互式的绘图,仪表盘和数据应用。

关于bokeh,微信公众号之前写过的文章用应用过timeseries图,有兴趣的可阅览下。

用Pandas获取商品期货价格并可视化

bokeh部分绘图实例如下:

详细信息可在其官方网站查阅:

http://bokeh.pydata.org

plotly

Plotly是另一个免费进行数据分析和绘制图表的APP,建立在d3.js上。 Plotly图可下载为SVG,EPS或PNG格式,并简单地导入到Illustrator或者Photoshop中。

跟bokeh类似,也可以制作一些交互式的web图。

plotly部分绘图实例如下:

详细内容可以去官网参考:

https://plot.ly/python/

其他综合类型库

Holoviews

Holoviews能够让用户构建有助于可视化的数据结构,而且它包含丰富的可组合元素库,可以覆盖、嵌套和轻松定位。同时,它还支持快速数据探索。

Holoviews可以和Seaborn、pandas或者bokeh组合使用。

由于笔者还没具体了解过Holoviews的使用功能,这里将英文的描述直接放在下面,以免个人理解不准确而产生误导。

关于Holoviews的效果图,可参考下面动态图,建议观看原视频,效果会好点。

Altair

Altairs起源于D3,但代码编写量要比D3简单。这里有两幅对比的图如下:

  • 用D3绘制的柱状图

  • 用Altairs绘制的柱状图

Altair 是 Python 高级声明式可视化库。Altair 提供一个 Python API 在声明式 manner 中构建静态统计可视化库。

什么是声明式可视化库呢,不管是翻译成中文的名称还是看英文的名称,我都一脸懵圈。幸好,有英文的进一步描述,如下:

总的来说,Altairs让开发者们更专注于数据及他们之间的关系,而不是一些不重要的细节。

最后,再放上这张Python可视化的全景图,对于个人而言,不一定能全部熟悉使用,但是能熟练用好其中的一部分,实际应用于工作及项目中,也就OK了。

关于视频

pycon 2017的相关演讲主题的视频在youtube上可观看,由于墙的缘故,部分童鞋可能不能观看视频。

python可视化这个视频,我已经下载下来,需要的童鞋可在微信公众号“Python数据之道”后台回复关键字获取视频,关键字如下:

2017-024”(不含引号)

相关文章:

Python可视化:Seaborn库热力图使用进阶

python求职Top10城市,来看看是否有你所在的城市

关于matplotlib,你要的饼图在这里

用Pandas获取商品期货价格并可视化

Pycon 2017: Python可视化库大全的更多相关文章

  1. Python可视化库

    转自小小蒲公英原文用Python可视化库 现如今大数据已人尽皆知,但在这个信息大爆炸的时代里,空有海量数据是无实际使用价值,更不要说帮助管理者进行业务决策.那么数据有什么价值呢?用什么样的手段才能把数 ...

  2. python第三方库大全

    环境管理 管理 Python 版本和环境的工具 p:非常简单的交互式 python 版本管理工具.官网 pyenv:简单的 Python 版本管理工具.官网 Vex:可以在虚拟环境中执行命令.官网 v ...

  3. Python常用库大全

    环境管理 管理 Python 版本和环境的工具 p – 非常简单的交互式 python 版本管理工具. pyenv – 简单的 Python 版本管理工具. Vex – 可以在虚拟环境中执行命令. v ...

  4. Python常用库大全,看看有没有你需要的

    作者:史豹链接:https://www.zhihu.com/question/20501628/answer/223340838来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...

  5. Python应用库大全总结

    学python,想必大家都是从爬虫开始的吧.毕竟网上类似的资源很丰富,开源项目也非常多. python学习网络爬虫主要分3个大的版块:抓取,分析,存储 当我们在浏览器中输入一个url后回车,后台会发生 ...

  6. Python精选库大全,建议收藏留用!

    Python为啥这么火,这么多人学,就是因为简单好学,功能强大,整个社区非常活跃,资料很多.而且这语言涉及了方方面面,比如自动化测试,运维,爬虫,数据分析,机器学习,金融领域,后端开发,云计算,游戏开 ...

  7. Python可视化库-Matplotlib使用总结

    在做完数据分析后,有时候需要将分析结果一目了然地展示出来,此时便离不开Python可视化工具,Matplotlib是Python中的一个2D绘图工具,是另外一个绘图工具seaborn的基础包 先总结下 ...

  8. python 可视化库

    在做titanic分析的过程中,看了一些大神的想法,发现在分析数据的过程中,许多大神会使用到seaborn,plotly这些库,而我等小白仅仅知道matplotlib这个唯一的数据可视化库而已.上网查 ...

  9. python标准库大全(转)

    3. 清晰的标准库大全,带例子 2. 必会标准库 http://lizhenliang.blog.51cto.com/7876557/1872538 1. 标准库大全,链接版 http://blog. ...

随机推荐

  1. Array和ArrayCollection作为数据源的一个应用区别

    在不用[Enabled]元标签的前提下,将一个Array赋值给DataGrid.DataList等控件的DataProvider后,当Array值发生改变时,控件显示内容不会及时更新(可调用控件的in ...

  2. waiting for spring......

    世间哪得双全法,不负如来不负卿....<仓央嘉措>

  3. [Day03] 循环语句、list相关练习题

    用户输入两个数,求平均值. 让用户一直输入数字,如果输入的是'0',终止程序打印所有数字之和. 让用户一直输入数字(只输入数字),如果没输入任何值,终止程序打印所有输入数字的平均值. 求出这个list ...

  4. IntelliJ-项目配置,解决no artifacts的warnings

    1.名词解释 artifacts:是maven中的一个概念,表示项目/modules如何打包,比如jar,war,war exploded,ear等打包形式, 一个项目或者说module有了artif ...

  5. Pycharm实用技巧汇总

    Pycharm中输入 a = list 按住Command点鼠标左键,即可查看该类下的所有用法,如下图 获取类中有哪些成员

  6. 【原创】Android 5.0 BLE低功耗蓝牙从设备应用

    如果各位觉得有用,转载+个出处. 现如今安卓的低功耗蓝牙应用十分普遍了,智能手环.手表遍地都是,基本都是利用BLE通信来交互数据.BLE基本在安卓.IOS两大终端设备上都有很好支持,所以有很好发展前景 ...

  7. ZJOI2017 Round#2 滚粗记

    在杭州的火车站的KFC餐厅里,独自一人,闲来无事,便写写这篇博客.刚刚的一个礼拜,经历了余姚的省选和杭州的数学集训,感觉有些浪,学校里现在还在上新课,我已经落下一个礼拜的文化课了,回去估计补死:最重要 ...

  8. jdbc连接数据库工具包模板

    jdbc连接数据库操作 jdbc连接数据库模板,收藏可做模板使用(小型工程,一般大工程都会用框架,c3p0等连接,不考虑此种方法!). 配置文件的使用(使用配置文件可以使我们后期的修改更加方便,当然, ...

  9. shapeless官方指南翻译总结

    今天抽空把之前翻译的<The Type Astronaut's Guide to Shapeless>一书放到了Gitbook上,将其开源供所有人阅读并希望大家能够提出宝贵意见,地址为sh ...

  10. PRML读书笔记——机器学习导论

    什么是模式识别(Pattern Recognition)? 按照Bishop的定义,模式识别就是用机器学习的算法从数据中挖掘出有用的pattern. 人们很早就开始学习如何从大量的数据中发现隐藏在背后 ...