本文主要是介绍基于Web应用的网络数据可视化方案,这类可视化方案众多,本文精选了一些相对典型的方案,供各位大佬参考。有些链接可能无法访问,请自备梯子。篇幅有限,欢迎补充。
目录
1. Echarts
https://echarts.apache.org
Echarts有好几种类型的图标可以用来丛网络数据的可视化,主要类型如下:
- Echarts—类型1 (https://echarts.apache.org/examples/zh/editor.html?c=graph-simple)
这种类型的图标适合简单的有向关系图表示。
![](https://i-blog.csdnimg.cn/blog_migrate/032d2a528f0a6b0b4df0fbce23037c21.png)
- Echarts—类型2 (https://echarts.apache.org/examples/zh/editor.html?c=graph-force)
这是力引导布局的例子,对于需要进行稀疏排列的场景可以考虑用这种。
![](https://i-blog.csdnimg.cn/blog_migrate/525491dbd1864ad84be31172f595ff98.png)
- Echarts—类型3 (https://echarts.apache.org/examples/zh/editor.html?c=graphgl-large-internet&gl=1&theme=dark)
和力引导布局图类似,这种类型的图适合展示大规模网络数据,并且很好的平衡网络规模和渲染性能。
![](https://i-blog.csdnimg.cn/blog_migrate/f79379216925c574a9c0921eb8b508fc.png)
- Echarts—类型3 (https://echarts.apache.org/examples/zh/editor.html?c=graph-label-overlap)
这种图可以显示依赖关系,自动高亮邻近连接关系和显示节点权重。
![](https://i-blog.csdnimg.cn/blog_migrate/b533eef3ed98c71a2f6cf8f97afef455.png)
![](https://i-blog.csdnimg.cn/blog_migrate/3819060388d26af935a82e8885ff6d89.png)
- Echarts—类型4 (https://echarts.apache.org/examples/zh/editor.html?c=graph-circular-layout)
环形布局,对于节点数较少的情况用这种比较合适,表现形式更加美观。
![](https://i-blog.csdnimg.cn/blog_migrate/7c080f449fbf31c8b20fdd16edfe8e80.png)
- Echarts—类型5 (https://echarts.apache.org/examples/zh/editor.html?c=tree-basic)
这种图属于树状图,适合用在具有非常明确的上下级分层,并且没有横向关联的网络数据类型。
![](https://i-blog.csdnimg.cn/blog_migrate/ccaf2cc5ae77f899d3e86509c4bd140d.png)
![](https://i-blog.csdnimg.cn/blog_migrate/e48d46040b44943b7b14858a3a86cad7.png)
- Echarts—类型6 (https://echarts.apache.org/examples/zh/editor.html?c=lines3d-flights-gl&gl=1)
这种图能够使用在具有地理位置的节点网络场景,但是数据量不能太大,对于大量数据,图形渲染和刷新将会非常卡顿。
![](https://i-blog.csdnimg.cn/blog_migrate/f1ac574ed956e009a49a45ef0df63cdf.png)
![](https://i-blog.csdnimg.cn/blog_migrate/3b7f43a7f2737d337411956339194346.png)
- Echarts—类型7 (https://echarts.apache.org/examples/zh/editor.html?c=linesGL-ny&gl=1)
对于和路网相关的网络数据,可以使用本例子,展现了Echarts对于处理大量路网信息的强大性能。
![](https://i-blog.csdnimg.cn/blog_migrate/0802783c1c65d84f8e7adea3575a522a.png)
2. G6
https://g6.antv.vision
G6相较于Echarts也具有非常丰富的展示类型,和网络相关的主要包括一下几种:
- G6—类型1 (https://g6.antv.vision/zh/examples/case/graphDemos#graphinsight)
适用于非树嵌套结构的、可能存在环路的数据结构展示。
![](https://i-blog.csdnimg.cn/blog_migrate/a8eedb0034e1872276eb67e7bd0d8629.png)
![](https://i-blog.csdnimg.cn/blog_migrate/a98948ec2ae534aa29ee2f1e5aa877a3.png)
- G6—类型3 (https://g6.antv.vision/zh/examples/case/graphDemos#edgeBundling)
这是美国迁徙图边绑定的例子,这种类型的图体现了三个方面的信息:1、节点的方向,输入或者输出;2、节点规模,通过节点的大小体现;3、输入输出的比例,通过节点的饼状图可以直观看出。
![](https://i-blog.csdnimg.cn/blog_migrate/15cdf6f1e626d70eebf212a7295a1e19.png)
![](https://i-blog.csdnimg.cn/blog_migrate/25627cf335f41c87e8de3094826ace1a.png)
- G6—类型5 (https://g6.antv.vision/zh/examples/case/graphDemos#donutTransfer)
这种类型的图展示了四个方面的信息:1、节点的成份构成;2、节点规模;3、节点间通信方向;4、节点间流量大小。
![](https://i-blog.csdnimg.cn/blog_migrate/2628f633ad7f20066d4fcee755e453f5.png)
- G6—类型6 (https://g6.antv.vision/zh/examples/case/graphDemos#customFlow)
这种类型的图标能够看出一个主线、和每个节点下的分类信息,以及每个节点在各个分类的大致覆盖情况。
![](https://i-blog.csdnimg.cn/blog_migrate/fc7d4fea8b39b29704e1f77815a0940c.png)
![](https://i-blog.csdnimg.cn/blog_migrate/24603327e2a97a67d20663f15cf0e71f.png)
- G6—类型8 (https://g6.antv.vision/zh/examples/case/others#metroLines)
这种是交通网络图,能够体现地理位置、动态的路网流量动画,节点状态动画。
![](https://i-blog.csdnimg.cn/blog_migrate/2dbaadd8d1f5148c9ce3ea715de22cad.png)
![](https://i-blog.csdnimg.cn/blog_migrate/c45d7a2f04a8f438c8ce290760290035.png)
- G6—类型10 (https://g6.antv.vision/zh/examples/interaction/hull#hull)
轮廓包装图,适合对网络节点进行分类。
![](https://i-blog.csdnimg.cn/blog_migrate/5264b49244ebf8f384906e56ae835bdd.png)
3. L7
- L7—类型1 (https://l7.antv.vision/zh/examples/gallery/animate#plane_animate)
类似Echarts的飞线图,体现了地理位置,节点动画,节点连接信息流动方向。
![](https://i-blog.csdnimg.cn/blog_migrate/da2cf35337ea4ee5d022baf6b3751bbc.png)
- L7—类型2 (https://l7.antv.vision/zh/examples/gallery/animate#turin)
体现了节点之间的信息流动精细轨迹。
![](https://i-blog.csdnimg.cn/blog_migrate/f42a7575833a96d7d817cc5a0ca59a51.png)
- L7—类型3 (https://l7.antv.vision/zh/examples/earth/arc3d#flyline)
3D地理节点数据飞线,可以体现出节点位置、信息流动方向。
![](https://i-blog.csdnimg.cn/blog_migrate/0371f904a701ed6fba420359c2687706.png)
4. L7Plot
- L7Plot—类型1 (https://l7plot.antv.vision/zh/examples/path/path#beijingMetro)
体现了交通路网的地理位置,节点连线的差异化。
![](https://i-blog.csdnimg.cn/blog_migrate/58c4484e13fc821e0e5fb4349edeb1e4.png)
- L7Plot—类型2 (https://l7plot.antv.vision/zh/examples/flow/flow#ground-flow)
体现了节点的地理位置、节点状态动画、节点连线的信息流动方向动画。
![](https://i-blog.csdnimg.cn/blog_migrate/37b3edabd5e69eae3875b3b133efd387.png)
5. F6
https://f6.antv.vision
F6主要是针对移动端的可视化工具,和G6类似,但是考虑充分考虑了移动端对于GPU的不同需求。
![](https://i-blog.csdnimg.cn/blog_migrate/004fcf2c7d9fca55e66409cd79883843.png)
![](https://i-blog.csdnimg.cn/blog_migrate/8ddf9a90f00aaa4f70f535b9b9decb6c.png)
- F6—类型3 (https://f6.antv.vision/zh/docs/examples/net/forceDirected)
力导向布局图。 -
- F6—类型4 (https://f6.antv.vision/zh/docs/examples/net/circular)
![](https://i-blog.csdnimg.cn/blog_migrate/61533e6faa9295d3a48936b7406a0feb.png)
- F6—类型5 (https://f6.antv.vision/zh/docs/examples/net/arcDiagram)
弧线图,体现少量点之间的网络关系。
![](https://i-blog.csdnimg.cn/blog_migrate/607580e54ffa2ce8b76cecc1023247da.png)
6. AVA
![](https://i-blog.csdnimg.cn/blog_migrate/2ab30ba7f228fb68d21ec4265ff60f62.png)
7. D3
https://observablehq.com/@d3/gallery
D3提供了非常底层的可视化API,给与开发者极大的自由度。这种高自由度的代价是,对于复杂图形的开发成本高。D3也作为很多可视化工具的基础库。
![](https://i-blog.csdnimg.cn/blog_migrate/a5adc4b38cf92f1b75af9bfd66df9481.png)
![](https://i-blog.csdnimg.cn/blog_migrate/e284d57b9897961b0cbdda4661a8278f.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ac1d294b8b2db7f89758395d7f277e29.png)
![](https://i-blog.csdnimg.cn/blog_migrate/70e03b75b79c17a56316b45ca2deaeef.png)
![](https://i-blog.csdnimg.cn/blog_migrate/d134e76fd23480601cd63240382ab2d9.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ceaa787ab91dcd1d98d36184265b989c.png)
- D3—类型7 (https://observablehq.com/@d3/voronoi-labels)
泰森多边形又叫冯洛诺伊图(Voronoi diagram),得名于Georgy Voronoi,是一组由连接两邻点线段的垂直平分线组成的连续多边形。一个泰森多边形内的任一点到构成该多边形的控制点的距离小于到其他多边形控制点的距离。
![](https://i-blog.csdnimg.cn/blog_migrate/d3674821a690cd294933714ac2f6f7fc.png)
- D3—类型8 (https://observablehq.com/@d3/world-airports-voronoi)
世界机场节点和覆盖范围网络。
![](https://i-blog.csdnimg.cn/blog_migrate/34e2fcbc8c93092daf108ca6096cafe2.png)
- D3—类型9 (https://observablehq.com/@mbostock/stern-brocot-tree)
Stern-Brocot Tree是一种能将所有的最简分数都表示出来的结构
![](https://i-blog.csdnimg.cn/blog_migrate/60349b756d088ea455963524ccb8a249.png)
8. Keylines
https://cambridge-intelligence.com/keylines
![](https://i-blog.csdnimg.cn/blog_migrate/a274ba6e68b59eb38f09b8b5c5d0a97c.png)
![](https://i-blog.csdnimg.cn/blog_migrate/9ff7773f73dd9b3361c906d621f10d98.png)
![](https://i-blog.csdnimg.cn/blog_migrate/9d877801602f39bcec8d3c850d912272.png)
9. Vis.js
https://visjs.github.io/vis-network/examples
- Vis.js—类型1 (https://visjs.github.io/vis-network/examples/network/data/dynamicFiltering.html)
这种类型主要体现了节点之间的方向性。
![](https://i-blog.csdnimg.cn/blog_migrate/f0d5da172dc2fa513ab59004f143289e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f4ebb380bbf8ad6cb0bc59c9b2298b1b.png)
![](https://i-blog.csdnimg.cn/blog_migrate/a08d442cebb55b004f78ff38b688a90b.png)
- Vis.js—类型4 (https://visjs.github.io/vis-network/examples/network/exampleApplications/neighbourhoodHighlight.html)
这个例子体现了节点和节点连线分组。
![](https://i-blog.csdnimg.cn/blog_migrate/310a118a09b2f4d99530e327f71c1d12.png)
10. Sigma.js
![](https://i-blog.csdnimg.cn/blog_migrate/b3053e77520b9d67c74c3977d3436417.png)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ermPDOwE-1662366655879)(https://codesandbox.io/s/github/jacomyal/sigma.js/tree/main/examples/load-gexf-file)]](https://img-blog.csdnimg.cn/d18b5d5fad7b4b6ebb722a2cde097746.png"/>
![](https://i-blog.csdnimg.cn/blog_migrate/4fc9ac88f15c33e06f62db1a851b9ffe.png)
![](https://i-blog.csdnimg.cn/blog_migrate/d3c781a03eb58be05e2562ba1deafbb5.png)
- Sigma.js—类型4 (https://codesandbox.io/s/github/jacomyal/sigma.js/tree/main/examples/custom-rendering)
![](https://i-blog.csdnimg.cn/blog_migrate/4fde68f1dfc02030fa5539afc7742d6f.png)
11. Ogma
https://doc.linkurio.us/ogma/latest)
![](https://i-blog.csdnimg.cn/blog_migrate/a421603b4bd59327aea09f2f05b685f0.png)
![](https://i-blog.csdnimg.cn/blog_migrate/d05dcd18ed0384285827894d8c6498b5.png)
![](https://i-blog.csdnimg.cn/blog_migrate/c1430ebe6d1200652d345125dd4cd4bb.png)
![](https://i-blog.csdnimg.cn/blog_migrate/02658f02dd2a90f04cab99cdd6fe5822.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0ad1c7541b9a7b2df7840862f1ef09bc.png)
![](https://i-blog.csdnimg.cn/blog_migrate/5653f8ac8a6dc0f15887f8a697a28d95.png)
![](https://i-blog.csdnimg.cn/blog_migrate/24fbd3ad0caaff2cec6e3c5a54b6e971.png)
![](https://i-blog.csdnimg.cn/blog_migrate/47b1dc0997c313190ecbc7abe59d69fe.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ea4b8724d12c1cc81e620b4262a24037.png)
![](https://i-blog.csdnimg.cn/blog_migrate/cf7c91bc424dc8e3316f1f787b0c7c4f.png)
![](https://i-blog.csdnimg.cn/blog_migrate/4e24b4177a1dc8421f14fec96bf7f239.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0c5d41779e593041a33a244096561db8.png)
![](https://i-blog.csdnimg.cn/blog_migrate/19988063d257ef66f0300b61fc2ffbd0.png)
![](https://i-blog.csdnimg.cn/blog_migrate/8bdfd0170f860d7d6791278815572a23.png)
12. Ngraph
https://github.com/anvaka/ngraph
![](https://i-blog.csdnimg.cn/blog_migrate/9a3032c0e03723220ac3e15db2830779.png)
13. React-force-graph
https://github.com/vasturiano/react-force-graph
是一个3D视图的力引导布局的库。
![](https://i-blog.csdnimg.cn/blog_migrate/c54f9e5460608a800d22befb74efe427.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0bfa662789cff61dded68dae24134312.png)
![](https://i-blog.csdnimg.cn/blog_migrate/06f7a96213a888eb3695c225a2ab9601.png)
![](https://i-blog.csdnimg.cn/blog_migrate/95bc340c5758ce9fd81caad9e0bb868f.png)
![](https://i-blog.csdnimg.cn/blog_migrate/33c0842180f1cccc5ed077979feedf49.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7072eb7314527ae56335feacb9aefcc7.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ff5c8816b84f2f79177edf947811c028.png)
14. Cola.js
https://ialab.it.monash.edu/webcola/
![](https://i-blog.csdnimg.cn/blog_migrate/bf91add5cfdfef8556a7a423ee32ce71.png)
![](https://i-blog.csdnimg.cn/blog_migrate/19f3bd21bf1dfd1d8c08c6e909cf4710.png)
![](https://i-blog.csdnimg.cn/blog_migrate/9670b24014e2366169d051ec6ea5f311.png)
![](https://i-blog.csdnimg.cn/blog_migrate/bfe8c02adfc27f6acd99ed658c8ab08e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0383de87341a82ce4be532769bf98369.png)
![](https://i-blog.csdnimg.cn/blog_migrate/5d60c897ff69817ea7b77388f9d635f5.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7609bb12e5926ed15311522d88ec62f9.png)
15. Cytoscape.js
https://js.cytoscape.org/
这是一个用纯JS编写的图形库,带有针对核心Cytoscape.js库和所有第一方扩展的开放源代码许可(MIT)。它在生产中的商业项目和开源项目中使用,并且首先面向用户(面向前端应用程序用例和开发人员用例)设计。它包括从BFS到PageRank的图论算法。一个非常适合做知识图谱的前端可视化图库。
![](https://i-blog.csdnimg.cn/blog_migrate/021d70251b78e41e51b474902cf22730.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7c4242115ac42992bc067aec9b45c23d.png)
![](https://i-blog.csdnimg.cn/blog_migrate/708e0d817957eb54ca6a00faca388b2a.png)
![](https://i-blog.csdnimg.cn/blog_migrate/c9b7386d89e919c63d6c079edd863a60.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0d3e483c728ad61b9d4bebd89c25ead3.png)
![](https://i-blog.csdnimg.cn/blog_migrate/daa38cc2e7ce4bc3df5987b7f284ee84.png)
16. dagre-d3
https://github.com/dagrejs/dagre-d3
![](https://i-blog.csdnimg.cn/blog_migrate/fa639905f9098e14c098e0aa85f44f95.png)
![](https://i-blog.csdnimg.cn/blog_migrate/94dd9d61f75fea843fe04474a3d9b0b3.png)
![](https://i-blog.csdnimg.cn/blog_migrate/59bafda5d73698dfdaf84e8202e5134b.png)
17. ElGrapho
![](https://i-blog.csdnimg.cn/blog_migrate/8afbff8e609cc5477994fdb8fc451499.png)
![](https://i-blog.csdnimg.cn/blog_migrate/01ee51d4132c9de70ef283e91380b70c.png)
![](https://i-blog.csdnimg.cn/blog_migrate/9968a0dcd51f377066589f88bdc95140.png)
18. GoJS
![](https://i-blog.csdnimg.cn/blog_migrate/6131d82ee8b9f487dc07b7ff66e4c300.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0d395d68d1f04914cdb255d363771dd6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/dd709952b768f9d1ce57d3a0c74019d1.png)
![](https://i-blog.csdnimg.cn/blog_migrate/761b15ecdb1d56aec4c233c6e5aaeaa9.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ca7c75b755f45519a0c2241011d95cc1.png)
![](https://i-blog.csdnimg.cn/blog_migrate/04eb85dc87a2b8754636468a96b42d7e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/bfccdba68274cbafff670952949b0295.png)
![](https://i-blog.csdnimg.cn/blog_migrate/2da195a4d468691e0c56ece156576c23.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0caf3595fbbc9673dc65b9fc2f84bcb8.png)
![](https://i-blog.csdnimg.cn/blog_migrate/2ec67c4add9fbcd607d72093827546ad.png)
19. Jointjs
https://resources.jointjs.com/
![](https://i-blog.csdnimg.cn/blog_migrate/b079697e8b50e2d1fb0de36da246c7ce.png)
![](https://i-blog.csdnimg.cn/blog_migrate/6ee16acdb77c74e8296256a548c27bc6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/b50970f72ecbc3ef77acba7049b67b20.png)
![](https://i-blog.csdnimg.cn/blog_migrate/76865b7608c750e4d1af423246e67d81.png)
![](https://i-blog.csdnimg.cn/blog_migrate/67788de311eb73c636719c64ee4d9a79.png)
![](https://i-blog.csdnimg.cn/blog_migrate/1d6ac732c4569b6e9793bb6f6f40f60a.png)
![](https://i-blog.csdnimg.cn/blog_migrate/27e419626b5edd91c33c509238d6752d.png)
![](https://i-blog.csdnimg.cn/blog_migrate/209a42f6c957a6ac619bd39adddbf720.png)
![](https://i-blog.csdnimg.cn/blog_migrate/12948fa922ed7745762f7401dae3bbea.png)
20. JavaScript InfoVis Toolkit
http://philogb.github.io/jit/demos.html
![](https://i-blog.csdnimg.cn/blog_migrate/970d8c36456c77486c7dc91fd9d2646c.png)
![](https://i-blog.csdnimg.cn/blog_migrate/d44acd36bd0cf2cb5f0ee2ff309669ff.png)
![](https://i-blog.csdnimg.cn/blog_migrate/b1f79908d2f199f3bfb6fb4fa93944f6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/a2f7bc43537748aa8bd7c5bf93c97eb0.png)
![](https://i-blog.csdnimg.cn/blog_migrate/45b3f09e1071160c767f7b4f28c42cf4.png)
21. jsPlumb
https://demo.jsplumbtoolkit.com
![](https://i-blog.csdnimg.cn/blog_migrate/520b9cb32680eec9a7ee38d1ee82dadb.png)
![](https://i-blog.csdnimg.cn/blog_migrate/9527eb464888c836971035441748a7ce.png)
![](https://i-blog.csdnimg.cn/blog_migrate/18d94b1e795eeef75ce649caf8e1243d.png)
![](https://i-blog.csdnimg.cn/blog_migrate/8c55761b670a426d82037a8464d864c6.png)
![](https://i-blog.csdnimg.cn/blog_migrate/2fcd3baa0db6318a4a1347c7f2594b93.png)
参考资料
- Echarts (https://echarts.apache.org)
- G6 (https://g6.antv.vision)
- L7 (https://l7.antv.vision)
- L7Plot (https://l7plot.antv.vision)
- F6 (https://f6.antv.vision)
- AVA (https://ava.antv.vision)
- D3
- Keylines
- Vis.js
- Sigma.js (https://www.sigmajs.org/)
- Ogma (https://doc.linkurio.us/ogma/latest/)
- Ngraph (https://github.com/anvaka/ngraph)
- React-force-graph (https://github.com/vasturiano/react-force-graph)
- A Comparison of Javascript Graph Network Visualisation Libraries
- Cola.js (https://ialab.it.monash.edu/webcola)
- Cytoscape.js (https://js.cytoscape.org/)
- dagre-d3 (https://github.com/dagrejs/dagre-d3)
- ElGrapho (https://www.elgrapho.com/)
- GoJS (https://gojs.net.cn)
- Jointjs (https://resources.jointjs.com)
- JavaScript InfoVis Toolkit (http://philogb.github.io/jit/demos.html)
- jsPlumb (https://demo.jsplumbtoolkit.com)