「Python」Python可视化库你知道多少?一文带你深入探讨( 三 )
用户界面和发布方式各种库在可以使用图的方式上有很大不同 。
静态图像:大多数图书馆现在可以无头操作来创建静态图像 , 至少在PNG中 , 通常采用平滑的矢量格式 , 如SVG或PDF 。
原生GUI应用程序:SciVis库以及Matplotlib和Vaex可以创建特定于操作系统的GUI窗口 , 它提供高性能 , 支持大型数据集以及与其他桌面应用程序集成 , 但与特定操作系统绑定 , 通常需要在本地运行而不是通过网络 。 在某些情况下 , 嵌入基于JavaScript的工具也可以通过嵌入Web浏览器嵌入到本机应用程序中 。
导出为HTML:大多数JavaScript和JSON库都可以在无服务器模式下运行 , 生成交互式绘图(缩放 , 平移等) , 可以通过电子邮件发送或发布到Web服务器上 , 而无需Python 。
Jupyter笔记本:大多数InfoVis库现在支持Jupyter笔记本中的交互式使用 , 基于JavaScript的Python支持 。 基于ipywidgets的项目提供与Jupyter更紧密的集成 , 而其他一些方法在Jupyter中仅提供有限的交互性(例如 , 当与Matplotlib而不是Bokeh一起使用时 , HoloViews) 。
独立的基于Web的仪表板和应用程序:Plotly图表可以在具有Dash的单独可部署应用程序中使用 , Bokeh , HoloViews和GeoViews可以使用Bokeh Server进行部署 。 大多数其他InfoVis库可以使用新的Panel库部署为仪表板 , 至少包括Matplotlib , Altair , Plotly , Datashader , hvPlot , Seaborn , plotnine和yt 。 然而 , 尽管基于Web的交互性 , 基于ipywidgets的库(ipyleaflet , pythreejs , ipyvolume , bqplot)很难部署为面向公众的应用程序 , 因为Jupyter协议允许任意代码执行(但请参阅已解散的Jupyter仪表板项目和烧瓶-ipywidgets为潜在的解决方案) 。
因此 , 用户需要考虑给定的库是否将涵盖他们对其可视化所期望的使用范围 。
API类型
各种InfoVis库提供了大量的编程接口 , 适用于不同类型的用户以及创建可视化的不同方式 。 这些API的不同之处在于执行常见任务需要多少代码 , 以及它们为用户提供多少控制来处理不常见的任务以及将基元组合成新类型的图:
面向对象的Matplotlib API:Matplotlib的主要API , 允许完全控制和组合 , 但复杂和高度冗长的一些常见任务 , 如创建子图 。
命令式Pyplot API:Matplotlib的基本界面允许使用Matlab风格的命令式命令 , 这些命令对于简单的情况而言是简明但不是组合的 , 因此主要限于一组特定的受支持选项 。
势在必行的Pandas .plot()API:以数据框为中心 , 用户将主要在Pandas中准备数据 , 然后选择一个子集进行绘图 。 正如将在本系列的下一篇文章中讨论的那样 , 现在支持广泛的图表库以及其他数据结构 , 使它们成为广泛支持的基本绘图命令的基本集合 。 不是直接组合 , 但可以从底层绘图库返回可组合对象(如hvPlot) 。
声明性图形API:图形语法 -灵感库 , 如ggplot , plotnine , Altair和(在某种程度上)Bokeh提供了一种自然的方式来组合图形基元 , 如轴和字形 , 以创建完整的图 。
声明性数据API:基于其他库的本机API , HoloViews和GeoViews提供了更高级别的声明和组合API , 专注于注释 , 描述和处理可视化数据 , 而不是绘图元素 。
这些API中的每一个都适合具有不同背景和目标的用户 , 使一些任务变得简单和简洁 , 而其他任务则更加困难 。 除了Matplotlib之外 , 大多数库都支持一个或最多两个备用API , 因此选择一个适合每个用户的技术背景和首选工作流程的库非常重要 。
可视化发展趋势
【「Python」Python可视化库你知道多少?一文带你深入探讨】正如您所看到的 , Python提供了大量可视化功能 , 其方法和重点的多样性体现在大量可用的库中 。 方法之间的差异仍然很重要 , 并且具有深远的影响 , 这意味着用户需要在深入应用任何特定方法之前考虑这些差异 。
推荐阅读
- 「Python」小卖家也能月入5000+的方法
- Python爱好者社区| 程序员逆天改命,漫画
- 江苏政法科技让南京警务服务更智慧,特巡警“可视化”指挥高楼灭火
- Python:2019年,这24000程序员是如何使用Python的?
- [编程]TIOBE 5 月编程语言排行榜:C语言跑到第一,python连续两年上涨
- 【埃尔法哥哥】kNN分类算法及其python实现
- 「python训练营」数据分析:寻找Python最优计算性能
- 【智能家居科技】谁能取代Python?我使用Go来部署机器学习模型的原因
- 「简简科技」数据科学中选择Python还是R语言?
- 「罗永浩」入门python,看完这个300行代码的例子,你们会喜欢的~
