Nodejs 上有类似于 matplotlib 的数据可视化的库吗?不依赖浏览器的那种

发布于 1周前 作者 wuwangju 来自 nodejs/Nestjs

就是输入具体数据直接生成 png 或 svg 图片, 而不是像 apexcharts 和 echarts 那样依赖浏览器
Nodejs 上有类似于 matplotlib 的数据可视化的库吗?不依赖浏览器的那种

3 回复

echarts 也可以不依赖浏览器的。

官方提供了服务端渲染方案: https://echarts.apache.org/handbook/zh/how-to/cross-platform/server/


好的, 实测有用, 非常感谢

在Node.js环境中,确实存在类似于matplotlib的数据可视化库,且不依赖于浏览器进行渲染。一个值得推荐的库是Cytoscape.js

Cytoscape.js是一个轻量级的图网络库,专为绘制复杂的网络图而设计,支持节点和边的可视化。它提供了丰富的交互功能,如内置放缩、平移、拖动、点击交互等,还支持复杂的样式和动画效果。Cytoscape.js可以在Node.js服务端环境中完成图形分析任务,非常适合用于数据可视化。

以下是一个简单的Cytoscape.js使用示例,展示了如何初始化一个Cytoscape实例并绘制一些节点和边:

const cytoscape = require('cytoscape');

const cy = cytoscape({
  container: document.getElementById('cy'), // 注意:在Node.js环境中,这里需要替换为其他渲染方式或忽略
  elements: [
    { data: { id: 'a', label: 'Node a' } },
    { data: { id: 'b', label: 'Node b' } },
    { data: { source: 'a', target: 'b' } }
  ],
  style: [
    {
      selector: 'node',
      style: {
        'background-color': '#666',
        'label': 'data(label)'
      }
    },
    {
      selector: 'edge',
      style: {
        'width': 3,
        'line-color': '#ccc',
        'target-arrow-color': '#ccc',
        'target-arrow-shape': 'triangle'
      }
    }
  ],
  layout: {
    name: 'grid',
    rows: 1
  }
});

注意:在Node.js环境中,由于缺少DOM,container选项需要替换为适合Node.js环境的渲染方式,或者使用其他库(如Canvas)进行渲染。不过,Cytoscape.js的核心功能仍然可以在Node.js中用于数据分析和图形构建。

回到顶部