GitHub
Cytoscape.js: 这是一个功能强大且广泛使用的开源图可视化库。它提供了丰富的 API 来操作和样式化节点和边,支持多种布局算法(如 force-directed, grid, concentric 等),并且具有良好的交互性。它也容易与前端框架(如 React, Vue.js)集成。 Vis.js: 另一个流行的开源库,专注于动态的、基于浏览器的网络可视化。它提供了易于使用的 API 和多种内置的布局算法。Vis.js 的渲染性能也相当不错,尤其对于中等规模的数据集。 Sigma.js: 一个专门为绘制大型网络图而设计的 JavaScript 库。它使用了 WebGL 进行渲染,因此在处理大量节点和边时性能表现出色。Sigma.js 也提供了插件机制来扩展其功能。 G6 (by AntV): 这是蚂蚁集团 AntV 旗下的图可视化引擎。它提供了丰富的图元素、布局算法和交互功能,并且在性能和易用性方面都做了优化。G6 也支持自定义节点、边和布局。 VivaGraphJS: 一个轻量级的 JavaScript 图形绘制库,专注于性能。它提供了多种布局算法,并且可以自定义渲染器以适应不同的可视化需求。 也适用于图数据,但更通用的可视化库:
Plotly.js: 虽然 Plotly.js 是一个通用的图表库,但它也支持创建网络图 (scattergl with edges)。它提供了声明式的 API 和丰富的交互功能。 ECharts (by Apache): 类似于 Plotly.js,ECharts 是一个功能强大的通用图表库,也支持关系图。它具有高度的可定制性和丰富的图表类型。 mxGraph (now draw.io/diagrams.net): 这是一个更成熟和商业化的图编辑和可视化库。它提供了强大的图形编辑功能和多种布局算法,适用于构建复杂的图表和流程图。虽然不是完全免费和开源,但其核心是开源的。 React 相关的库:
react-force-graph: 一个基于 React 和 Three.js 的组件,用于创建 3D 力导向图。非常适合展示节点之间的关系和网络结构。 nivo: 一个构建在 D3 和 React 之上的数据可视化库,提供了一系列的图表组件,包括网络图等。