plotly Bokeh 哪个好Python化函式库视觉功能的测定?资料科学工具专家告诉你
消息来源:baojiabao.com 作者: 发布时间:2024-05-02
Python是资料科学家爱用的分析用开发语言,但除了统计和数学函式库以外,Python的资料视觉化函式库也越来越丰富,号称涵盖各种常用函式库的Python懒人包发行版本Anaconda,其解决方案架构师Jim Bednar最近详细地整理出Python资料视觉化函式库的整个生态系,要让资料科学家了解Python资料视觉化处理的威力。
在Python资料视觉化函式库的生态系中,可分为几个群组,这些群组都来自不同的起源,但主要可划分为科学视觉化(SciVis)和资讯视觉化(InfoVis)两块函式库。其中科学视觉化函式库主要用来视觉化地理位置资料,相关函式库有VisPy、glumpy、GR、Mayavi、ParaView、VTK和yt。主要是建构于OpenGL图形标准之上,可以为规则或不规则资料,提供三维或是四维的物理程序图形视觉化。这些函式库发展早于HTML5支援的网页应用程序,通常被用于工程或是科学环境中。
除了科学视觉化函式库这个区块,其他的函式库都属于资讯视觉化(InfoVis)函式库的群组,专注于对任意空间的资讯视觉化,以两个维度的抽象空间,使用轴和标签解释多维空间的资料。Jim Bednar提到,资讯视觉化函式库还可以进一步细分成多个子群组,区分成Matplotlib、JavaScript、JSON或是WebGL等各类型。
Matplotlib具有长久的历史,也是极受欢迎的的资讯视觉化函式库,支援广泛的2D绘图类型以及输出格式,Matplotlib发展也早于有HTML5的网页应用程序,因此主要是使用像是Qt和GTK的桌面GUI工具包,功能重点在于绘制静态图像,以及互动式图形的呈现上。Matplotlib提供部分3D支援,但比起学视觉化函式库有更多的限制。
而多年Matplotlib发展以来,有多种工具建立在Matplotlib的2D绘图功能之上,Jim Bednar将其归类成特定类型资料的渲染引擎,例如熊猫、NetworkX、Cartopy以及yt,而也有像是ggplot、plotnine、HoloViews和GeoViews函式库,提供高阶的绘图API。
在HTML5出现后,浏览器支援更丰富的互动功能,许多函式库开始为网页或是Jupyter Notebooks提供2D互动图形功能,无论是自定义Bokeh和Toyplot的函式库,或是包装既有的绘图函式库D3成更容易使用的函式库的Plotly和bqplot。Jim Bednar提到,也由于D3这样的JavaScript函式库已经发展成熟,可以简单地为任何语言包括Python产生JavaScript图形,透过Altair旧能以JSON移植完整的图形,并整合到许多类型的工具之中。
另外,对网页应用程序很重要的WebGL技术,也能提供网页丰富的绘图功能,就像HTML5用于2D JavaScript绘图的方式一样,WebGL标准在浏览器和Jupyter Notebooks中,也可以实现互动3D体验。Jim Bednar认为,虽然three.js、vtk.js或是regl,这些基于网页3D的方法都没有达到桌面科学视觉化函式库的深度,但是因为跟Jupyter Notebooks良好整合,可以透过网页和远端分享,大幅增加了便利性。他也提到,虽然WebGL工具与科学视觉化工具有部分重叠,但性质还是偏向资讯视觉化领域。
不同的函式库有适合不同的使用情境,Jim Bednar将用途归类成6大类。几乎所有资讯视觉化函式库都能良好的制作统计图,包括散点图、线、面积、长条图和直方图,但表现较杰出的有Seaborn、bqplot、Altair、ggplot2和plotnine。图像、规则网格和矩形网格,开发者可以使用Bokeh、Datashader、HoloViews、Matplotlib和Plotly,大多数科学视觉化函式库也都有支援。
不规则的二维网格包括三角形网格,可以使用学视觉化函式库以及Matplotlib、Bokeh、Datashader和HoloViews。无论是Matplotlib结合Cartopy,或是GeoViews、ipyleaflet与Plotly,都能用来绘制地理资料。网络(Networks)与图(Graphs)则能使用NetworkX、Plotly、Bokeh、HoloViews以及Datashader。在3D网格或散点图,则要使用Plotl、Matplotlib、HoloViews和ipyvolume,科学视觉化函式库也都有良好的支援。
此外,不同函式库也提供不同的界面,Jim Bednar将之区分为5大类,大多数函式库都提供无头操作,以生成静态图形,而像是科学视觉化函式库、Matplotlib和Vaex,都可以创建特定操作系统的GUI视窗,另外,大多数的JavaScript和JSON的资料视觉化函式库,都可以在没有服务器的情况下,产生互动式绘图,透过电子邮件或发布到不支援Python的网页服务器上。
热门的Jupyter Notebook受到广大的资讯视觉化函式库支援,大多数视觉化函式库都能够和Jupyter Notebook互通使用,开发者特别可以使用ipywidgets,以获得更好的整合体验。当然也有不少函式库提供独立的网页仪表板和应用程序,Plotly图表就能以Dash在独立的应用程序中使用,Bokeh、HoloViews和GeoViews可以使用Bokeh Server进行部署。大部分的资讯视觉化函式库都能使用Panel函式库部署仪表板,包括Matplotlib、Altair、Plotly、Datashader、hvPlot、Seaborn、plotnine和yt都没问题。
除了视觉化界面,资讯视觉化函式库也都提供了丰富的API,让不同类型的用户都能建置适合的视觉呈现。Jim Bednar表示,这些函式库提供的API都具有不同的背景和目标,适用于解决特定的任务,除了Matplotlib之外,大多数函式库都支援一个或最多个备用API,开发者在解决问题之前,应该选择适当的工具。
Matplotlib主要提供物件导向的API,开发者能掌握完全的控制和组合性,不过操作起来较为复杂。而ggplot、plotnine和Altair则属声明性图形API,提供组合图形的原语,让开发者直觉地组成图形。HoloViews和GeoViews则提供声明性资料API,让开发者能以高阶的声明和组合API,专注于标记、叙述和处理视觉化资料。
Jim Bednar提醒,大量且不同类型的Python资料视觉化函式库,提供开发者大量建构图形的不同方法,而这也意味着,开发者应该在深入投资开发资源前,先考虑这些差异带来的影响。
相关文章
- YouTube更新违反规定政策,提升惩处透明度和一致性
2023-12-31 14:00:52
- 传苹果将把中国iCloud正式交给本地化经营 苹果手机icloud换区存储操作
2023-12-27 18:34:43
- 刘德华代言什么手机?刘德华成华为Mate 60 RS非凡大师华为5G新手机代言人
2023-09-26 21:55:08
- WebOS新系统:Palm Pre手机最新款高价登港
2023-06-23 15:39:14
- 帮助企业组织对抗勒索软件,资安通报机构设立防护专区,可协助事前、事中与事后因应
2023-06-22 09:36:10
- 蔚来全系产品降价3万 取消免费换电 换一次电池180元
2023-06-12 17:27:49
- 电商平台三巨头开打最大规模折扣 价格战再次打响
2023-03-05 18:58:40
- 爱立信节省成本裁员四千人 爱立信全球员工总数五分之一
2023-02-24 22:27:29
- 蜜芽关停近况,八位数重金买三字顶级新域名mia.com也关闭
2023-02-23 16:18:14
- 联想CEO杨元庆:联想集团需要裁员32%削减部分业务支出
2023-02-18 12:45:25
- 蓝色光标2022营收亏损18亿 客户预算减少明显
2023-02-18 12:40:08
- 三星工厂或将80%生产转至越南 因本地劳动力成本上升
2023-02-17 23:09:16
- 香港八达通卡如何激活?没用失效过期余额怎么办
2023-02-17 18:34:51
- 中兴通讯被曝将裁员20% 称只裁国外的
2023-02-17 18:33:26
- 苹果新iPhone15Pro手机终于改用USB-C(火牛)数据线??Lightning充电接口退出
2023-02-17 16:57:22
- 突发!蓝色光标曾为中国民企500强龙头 如今业绩亏损断崖下跌
2023-02-16 14:31:19
- 三星发布自家carplay车载中控系统 Car Mode for Galaxy 可以连接carplay吗?
2023-02-14 00:53:17
- Opera浏览器宣布集成ChatGPT 一键生成网页内容摘要
2023-02-14 00:32:08
- 谷歌google计划重返进入中国市场?但结果可能令你失望
2023-02-13 16:57:15
- Zoom紧急裁员1300人 佔员工总数15%
2023-02-08 14:59:11