Python可视化工具概览

在互联网时代,每时每刻都在产生大量的数据。而气象领域更是一个“大数据”领域。除地面观测站之外,在轨卫星每年也会产生PB级气象数据,还有大量的数值模式数据。

面对气象领域庞杂的数据集,想要直观的表达信息,可视化可以说是最直接的表达方式之一。而且优秀的可视化可以起到事半功倍的效果。

2017年PyCon大会有一个演讲专门介绍了Python中的可视化库。Python中有很多优秀的可视化工具,大致可以分为三类:

  • 基于 matplotlib 的可视化库(比如seaborn等)
  • 基于JS的可视化库(比如bokeh,plotly等)
  • matplotlib和JS结合的可视化库

Python可视化工具概览

基于matplotlib构建的可视化库

matplotlib是Python中一个低级可视化工具,其提供了两种绘图方式。其中一种类似MATLAB,通过调用函数直接绘图。

这是matplotlib参考MATLAB对低级命令进行了封装,提供了一套函数式绘图接口。

函数式绘图使得使用matplotlib绘图更加方便,而且产生的图达到了出版质量,但是同样也存在一些缺点:

  • 调用细节被掩盖,不便于理解matpltolib的底层操作
  • 绘图处理速度低,尤其是在实时交互和图形快速更新等方面

但是对于不需要利用matplotlib进行开发的使用者来说,无需理解matplotlib的底层操作。对于第二点,如果生产环境对效率要求较高,可以更换其他库,或者在批量生产时采用多进程的方式来加快处理。

作为Python中使用最广泛的可视化工具之一,matplotlib可以绘制大多数常见的图。官方也提供了大量的可视化示例。也可以看这里:

如何用python画图——带你入门matplotlib

如何用python画图--matplotlib实例与补充

但是matplotlib默认设置绘图效果不是非常美观,而且matpltolib在统计绘图方面也不是很给力。而Seaborn则很好的解决了这个问题

Seaborn基于matplotlib,提供了一些更美观的配置选项,而且封装了很多统计绘图函数。所以如果你在做数据分析时,需要进行一些统计分析和可视化,Seaborn则是比较好的选择。前方剧透!!后面会专门对Seaborn进行介绍~~

Seaborn部分可视化示例

气象作为地球科学的分支,气象数据涉及到时间和空间维度,在进行可视化时通常涉及到地理信息的处理。除了常规的折线,柱状图之外,空间分布是进行气象数据可视化时非常重要的一项。

Python中一些库则专门处理涉及地理信息图形的工作,比如Basemap,Cartopy等,由于Basemap和Cartopy的处理效率相对较低,处理步骤相对繁琐,geopandas便应运而生。

geopandas扩展了pandas(pandas中有简单的绘图模块,可以说是提供了数据处理和可视化一条龙服务)的数据类型,从而允许进行几何操作,其目标是使python在地理空间数据处理更加简单。

基于JS的可视化库

除了基于matplotlib的可视化库之外,Python中有很多基于JS的可视化库,其中比较流行的是:Bokeh,HoloViews,Plotly等。基于JS开发的可视化库相对于matpltolib来说,其优势之一是:交互可视化

Bokeh和HoloViews是开源的交互式可视化库,其目标都是期望绘制美观的交互式图形,而且针对大数据流进行优化,以使得数据分析和可视化能够更加简单

Plotly是一个企业级分析工具,其提供了很多语言(比如MATLAB,Python,R等)的接口,可以直接嵌入到BI中。

Bokeh可视化效果

HoloViews可视化示例

上述给出的Bokeh和HoloViews示例均为静态图形,可以前往查看官方示例,以更好的体验基于JS带来的交互式可视化效果

HoloViews是PyViz的产品之一,此外还有一些其他产品,比如GeoViews,专门用来处理地理学数据的交互式可视化。

而且其提供了Bokeh,matplotlibDatashader可视化库的扩展。前往官网可以了解更多关于PyViz的介绍。

GeoViews可视化示例

除了上述可视化库之外,Altair是类似Seaborn用于统计可视化的交互式Python可视化库,其基于Vega和Vega-Lite(两者非基于Python的可视化库)。与Vega一样,都是声明式可视化工具。

Vega和Vega-Lite可视化

Altair可视化效果

此外,还有基于百度的Echarts构建的可视化库—pyecharts,其对Echarts中的很多工具进行了封装,也是进行交互式可视化的选择之一。

上述交互式可视化库主要应用在web端,或者嵌入到Jupyter notebook中。在使用jupyter notebook进行数据分析和可视化时,涉及到地理空间可视化时,可以使用gmaps将数据可视化到google地图并嵌入到jupyter notebook中。

Jupyter notebook中gmaps示例

基于JS的可视化库通常用于构建Web应用,当需要开发气象数据可视化平台时,可以使用基于JS的可视化库。

如果是做气象线下分析那么可以使用基于matpltolib的可视化库,而且matpltolib的绘图质量达到了出版质量要求,对于写论文或者报告来说能够满足要求

如果生产环境中想要批量生产而且对速度有较高要求或者对图形渲染有特别需求,可以尝试一下其它绘图库,比如PyQtGraph。PyQtGraph是基于PyQt4/PySide和numpy的纯Python图形和GUI库,主要应用于数学/科学/工程应用领域。

PyQtGraph支持2D/3D图形绘制,而且还提供了一些高级特征。此外,VisPy和Chaco同样可以完成上述任务。更多信息可以前往各可视化库官网查看。

|总结|

  • 无交互式可视化需求
    • 一般数据可视化需求: matpltolib能满足需求
    • 有统计分析处理和可视化需求:matplotlib + seaborn
    • 有地理空间可视化需求:matplotlib + Basemap/Cartopy/geopandas
  • 有交互式可视化需求
    • 仅一般数据可视化需求:Bokeh,HoloViews,Pyecharts,lightning等均可
    • 有统计分析需求:Altair
    • 地理空间可视化需求:GeoViews
  • 对处理速度或图形渲染有要求 PyQtGraph/Vispy/Chaco等库

- End -

本文由MeteoAI原创首发,未经允许禁止转载!

本文分享自微信公众号 - MeteoAI(meteoai)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-11-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏IT大咖说

Python程序员:没有我蹭不成功的网。教你如何愉快的蹭到WIFI?

想要WIFI破解,python+字典,这是必少不了的。热点加弱口令也是核心。字典自己加精,你的字典有强大,你能破解的WIFI就越多,提供两种方法,一般人学到一种...

20740
来自专栏热爱IT

Python数据分析神器——jupyter一些应知应会的奇技淫巧

用Python做数据分析的朋友,自然离不开jupyter notebook(以下简称jupyter)这款神器,它能让你非常方便的在数据探索过程中有良好的实时交互...

13100
来自专栏JAVAandPython君

一步步教你怎么用python写贪吃蛇游戏

前几天,星球有人提到贪吃蛇,一下子就勾起了我的兴趣,毕竟在那个Nokia称霸的年代,这款游戏可是经典中的经典啊!而用Python(蛇)玩Snake(贪吃蛇),那...

24800
来自专栏AI算法与图像处理

这种方式打开会ctrl的流量明星cxk,简直就是魔鬼

数字图像实际上 是二维图像用有限数字数值像素的表示。每个像素具有整数行和列位置坐标,同时每个像素都具有整数灰度值或颜色值。

12300
来自专栏CDA数据分析师

你是一个成熟的AI了,应该自己学会补全Python代码了

根据介绍,该项目基于 LSTM 模型,训练后,负责对代码的缺失部分进行补全。评价模型的方法是判断节省了多少的按键信息——即模型给出长度为 L 的代码建议,如果和...

12200
来自专栏CDA数据分析师

长点心吧年轻人,利率不是这么算的!我用Python告诉你亏了多少!

大家都知道一线城市生活压力大,年轻人如果没有家里人的帮助想要独立扎根并非易事。好不容易凑足了首付买了房,还要每月透支的还着房贷,在资金链不足的情况下想要得到其他...

13200
来自专栏北京宏哥

python学习 -女神或者男神把微信消息撤回后好慌,有了这个妈妈再也不担心你看不到女神或者男神撤回的消息了(超详解)

  有时候在忙工作,女朋友发了一个消息,就撤回了,但是人天生的都有一颗好奇心,而且在当今这个时代找个女朋友不容易,一个程序猿找一个女朋友更是不容易的。人家好不容...

13900
来自专栏机器学习算法与Python学习

史上最全 Python Re 模块讲解

“?” :0次或1次,match,search 不会出现none,会出现’ ‘ (因为0次也是符合的)

15460
来自专栏AI算法与图像处理

推荐几个炫酷的Python开源项目

简介:Supervisor是实际企业常用的一款 Linux/Unix 系统下的一个进程管理工具,基于Python开发,可以很方便的监听、启动、停止、重启一个或多...

37600
来自专栏CDA数据分析师

Python有哪些技术上的优点?比其他语言好在哪儿?

导读:本文是对Python一些最优的技术特性的快速介绍,以解答初学者关心的问题并消除他们最常见的疑惑。

17400

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励