因为工作学习需要,日常需要辅助画一些图形,为便于后续方便查找,故整理下相关常见库和工具。
这个差不多是把matlab中可以画出的图形,全部迁移到python中,通过python代码就可以实现图形制作。
绘图原理
① 导库;
② 创建figure画布对象;
③ 获取对应位置的axes坐标系对象;
④ 调用axes对象,进行对应位置的图形绘制;
⑤ 显示图形;
seaborn是matplotlib的更高级的封装。seaborn还兼容numpy、pandas数据结构,在组织数据上起了很大作用,从而更大程度上的帮助我们完成数据可视化。绘图原理与matplotlib类似。
介绍
- plotly是一个基于javascript的绘图库,plotly绘图种类丰富,效果美观;
- 易于保存与分享plotly的绘图结果,并且可以与Web无缝集成;
- ploty默认的绘图结果,是一个HTML网页文件,通过浏览器可以直接查看
绘图原理
① 绘制图形轨迹,在ployly里面叫做trace,每一个轨迹是一个trace。
② 将轨迹包裹成一个列表,形成一个“轨迹列表”。一个轨迹放在一个列表中,多个轨迹也是放在一个列表中。
③ 创建画布的同时,并将上述的轨迹列表,传入到Figure()中。
④ 使用Layout()添加其他的绘图参数,完善图形。
⑤ 展示图形。
地址:https://github.com/plotly/plotly.py
介绍
Echarts是一个由百度开源的数据可视化工具,基于python与echarts结合的数据可视化分析库,pyecharts应运而生。
地址:pyecharts - A Python Echarts Plotting Library built with love.
gallery地址:https://gallery.pyecharts.org/#/
绘图原理
① 选择图表类型;
② 声明图形类并添加数据;
③ 选择全局变量;
④ 显示及保存图表;
介绍
networkx是一个使Python语言开发的图论与复杂网络建模工具,内置了非常多的常用的图与复杂网络分析算法。利用networkx可以以标准化和非标准化的数据格式存储网络、生成多种随机网络和经典网络、分析网络结构、建立网络模型、设计新的网络算法、进行网络绘制等。
介绍
根据BSD许可发布的Python库,提供用于分解,可视化和分析图形数据的算法。是一个轻量级的Python库Py3plex,该库专注于多层网络的可视化和分析。该库实现了一组简单的图形基元,它们支持层内以及层间可视化。它还支持多层网络上的许多常见操作,例如聚合,切片,索引,遍历等。
地址:https://github.com/SkBlaz/py3plex
介绍
PyGraphistry 是一个 Python 可视化图形 AI 库,用于提取、转换、分析和可视化大图形,特别是与 Graphistry 端到端 GPU 服务器会话一起使用。
地址:https://github.com/graphistry/pygraphistry
介绍
PyG2Plot 是在 Python3 上的封装。G2Plot 是一套简单、易用、并具备一定扩展能力和组合能力的统计图表库,基于图形语法理论搭建而成。
地址:https://github.com/hustcc/PyG2Plot
Gephi是一个开放式的图形可视化平台,基本也是市场上公认的领先分析软件之一,也是最受欢迎的网络可视化分析软件包之一。使用者不需要具备任何编程知识,就可广泛使用Gephi生产高质量的可视化图表。它还可以处理相对较大的图形,实际大小取决于基础结构参数(特别是RAM),但应该能够毫无问题地运行多达十万个节点。它可以计算一些常见指标,比如度数,中心性等,重点关注可视化而非分析的强大工具。
地址:https://github.com/gephi/gephi
Cytoscape同样是一个开源可视化平台,有桌面版本和Javascript版本供开发人员选择。虽然,Cytoscape主要用于生物学领域,但它能够产生高质量的可视化图表且同样适用于其他领域,Cytoscape还有一系列用于网络操作和可视化的算法。
地址:Cytoscape: An Open Source Platform for Complex Network Analysis and Visualization
Ucinet主要用于学术界,提供广泛的分析功能并可计算大量指标,但它的重点并不是可视化而是分析,Ucinet擅长计算并分析各种类型的指标,但并不擅长将这些结果转化为精致的可视化报表。Ucinet只能在Windows上运行,因此Mac用户必须通过安装虚拟机来使用。
地址:https://sites.google.com/site/ucinetsoftware/home
该工具在高质量可视化方面可能无法提供Gephi具备的灵活性,但该软件可接口SNAP库并进行分析,使其可以访问一组用于度量计算的高效算法。NodeXL的主要优点是其可视化、分析和数据收集功能比较强大,可与Twitter API良好接口,研究人员曾利用NodeXL对社交媒体数据进行可视化和分析。据报道,NodeXL接下来会有一个商业版本,它将具有比开源版本更多的功能。
地址:https://www.smrfoundation.org/nodexl/
NetMiner是一种商用SNA软件,可用于对大型社交网络数据进行探索性分析和可视化,主要用于社交网络的一般研究和教学,它允许科学家和研究人员以可视化和交互方式分析数据,并了解网络的基本模式和结构。它的主要功能是网络分析、数据转换、统计、网络数据可视化和绘制图表等。
地址:NetMiner - Social Network Analysis Software
Pajek是大型复杂网络分析工具,是用于研究所存在的各种复杂非线性网络的有力工具。Pajek在Windows环境下运行,用于带上千乃至数百万个结点大型网络的分析和可视化操作。在斯洛文尼亚语中Pajek是蜘蛛的意思。
Pajek是由研究人员Vladamir Batagelj开发的高级免费软件,广泛用于大型网络分析和可视化。Pajek也被称为Ucinet的免费替代品,并提供强大的分析工具和免费文档,以帮助研究人员快速开始使用。
地址:Networks / Pajek
Social Networks Visualizer是一个用户友好的开源工具,被定义为一个跨平台的图形应用程序,用于社交网络分析和可视化。它让开发人员能够创建和修改社交网络并更改节点属性,其包括分析社会和数学属性以及有效地应用可视化布局以更好得呈现结果。对于数据分析家来说,这是一个非常有用的工具,可以与随机网络一起应用于社交数据集。利用这个工具,研究人员可以计算基本的图形属性,比如密度、直径、连通性、偏心率以及网络分析需要的其他指标。
地址:SocNetV - Social Network Analysis and Visualization Software
这是一个基于Web的应用程序,它接受多环境微生物的丰度和功能配置文件,智能地分隔“连续和分类”的元数据,并允许对分类,集成(组间)和分类的推理和可视化双向网络。MetagenoNets的模块化结构可确保在直观且交互式的个性化仪表板驱动的框架中进行逻辑分析(推理,集成,探索和比较)。动态选择过滤,标准化,数据转换和相关算法可确保最终用户获得微生物网络分析的一站式解决方案。
地址:MetagenoNets: Inference and Insights for Microbial Association Networks
参考链接:62个有用的图形可视化库 - 腾讯云开发者社区-腾讯云