@chartgpu/chartgpu

中文文档
0.4.0发布于 2026/08/03MITTypeScriptES Module零依赖近 30 天下载 4173

高性能 WebGPU 绘图库

中文使用文档
文档目录11 节
  1. 概览
  2. 演示
  3. 安装
  4. 最小示例
  5. 特征
  6. 系列类型
  7. 多图( 共享设备)
  8. 浏览器支持
  9. 文档
  10. 捐款
  11. 许可证

ChartGPU

WebGPU 图表库用于大型数据集,实时流线,多图仪表板,和3D系列. 麻省理工学院有执照 0 npm 运行时依赖性 .

npm tests MIT docs demo Featured in Awesome WebGPU

现场演示 • 妇女 文档 • 妇女 API 密码 • 妇女 实例


概览

图表GPU使图表与 网络GPU (不是Canvas2D或WebGL). 其目的是:

  • 密集时间序列和数百万分系列
  • 不断更新( E)appendData 具有可选环容量)
  • 共用设备多图仪表板
  • 2D 系列加 cartesian3d (单位:千美元)pointCloud3d, (中文(简体) ), surface3d(中文(简体) )

有一个 没有WebGL/ Canvas 回落。不支持的浏览器必须被主机应用程序打开.


演示

ChartGPU demo

流出多图壁( 共享 GPU 设备) :

Streaming multi-chart dashboard

流线仪表板 • 妇女 多图烹饪本 • 妇女 现场实例

散点密度烛台/ OHLC说明
Scatter densityCandlestickAnnotations

安装

npm install @chartgpu/chartgpu

也作为无范围出版 chartgpu (同为版本行. 反应绑定 : chartgpu-react (单位:千美元)npm i chartgpu-react @chartgpu/chartgpu) (中文(简体) ).

最小示例

import { ChartGPU } from '@chartgpu/chartgpu';

const el = document.getElementById('chart')!;
const chart = await ChartGPU.create(el, {
  series: [{
    type: 'line',
    data: {
      x: new Float64Array([0, 1, 2]),
      y: new Float64Array([1, 3, 2]),
    },
  }],
});

// Prefer column-shaped x/y at scale; object/[x,y] tuples are fine for small demos
const x = new Float64Array([3, 4, 5]);
const y = new Float64Array([2.5, 2.1, 2.8]);
chart.appendData(0, { x, y }, { maxPoints: 50_000 });

需要WebGPU可访问浏览器(参见 浏览器支持) (中文(简体) ).


特征

  • 流线 —— 说 appendData 可选 maxPoints 环 (FIFO). 加热图和3D表面使用专用更新API(updateHeatmap, (中文(简体) ), updateSurface3D) 而不是全部选项重写每个勾选 .
  • 取样 —— CPU上的 LTTB / min / 最大; 符合条件的行系列可以在GPU上运行被毁灭. Nulls 创建缺口; 可选 connectNulls。 。 。 . performance.lod数字 : auto | strict。 。 。 .
  • 多图 - 分享一个 GPUDevice (建议3) 通过缩放同步 connectCharts。 。 。 .
  • 互动 ——"缩放","平","多轴Y"等尺度,"暗"/"轻"/"定制"等主题,"说明".
  • 三维 —— 说 coordinateSystem: 'cartesian3d' 与 pointCloud3d 财务报告和审定财务报表 surface3d。 。 。 .
  • 依赖关系 零 npm 运行时依赖性。 麻省理工学院商业嵌入许可证.

结构注释 : 文献/档案. 业绩指南: 图gpu.io/docs/性能. 他们: 图表gpu.io/文件/主题。 。 。 .


系列类型

完整选项 : API — 选项。 。 。 .

类别类型/ 模式文档
笛卡尔line, (中文(简体) ), area, (中文(简体) ), bar, (中文(简体) ), scatter, (中文(简体) ), pie线条 • 妇女 散开
财务candlestick, (中文(简体) ), ohlc烛台
科学heatmap, (中文(简体) ), band, (中文(简体) ), errorBar, (中文(简体) ), impulse热映射
备选案文相上行/相下行 相上相下相上相下相下相下相下相下相下相下相下相下相下相下相下相下相下相下相下相下相下相下相下相下相下相下相下相下相下相下相下相下相下相下相下相下相下相下相下相下相下相下相下相下相下相下相下相下相下相下相下相下相下相下相下相下相下相下相下相下相下相下相下相下相下相下相下相下相下相下相下相下相下相相下相下相下相下相下相下相上相下相下相相上相相下相相下相下相下相下相上相下相下相下相下相下相下相下相下相下相下相相相下相下相相下相相下相下相相下相下相相下相下相相下相下相下相下相相相相相相相相相相相相 mode: 'density'图表
三维pointCloud3d, (中文(简体) ), surface3d三维 API

多图( 共享设备)

对于一页上的三个或三个以上的图表,创建一个单一的适配器/设备/管道缓存并将其传递到每个 ChartGPU.create。图表不会销毁处置上的共享设备.

import { ChartGPU, createPipelineCache, connectCharts } from '@chartgpu/chartgpu';

if (!navigator.gpu) {
  throw new Error('WebGPU not available');
}

const adapter = await navigator.gpu.requestAdapter({ powerPreference: 'high-performance' });
if (!adapter) throw new Error('No GPU adapter');

const device = await adapter.requestDevice();
const pipelineCache = createPipelineCache(device);
const ctx = { adapter, device, pipelineCache };

const a = await ChartGPU.create(document.getElementById('a')!, {
  series: [{ type: 'line', data: { x: new Float64Array([0]), y: new Float64Array([0]) } }],
}, ctx);
const b = await ChartGPU.create(document.getElementById('b')!, {
  series: [{ type: 'line', data: { x: new Float64Array([0]), y: new Float64Array([0]) } }],
}, ctx);
const c = await ChartGPU.create(document.getElementById('c')!, {
  series: [{ type: 'line', data: { x: new Float64Array([0]), y: new Float64Array([0]) } }],
}, ctx);

connectCharts([a, b, c], { syncZoom: true });
// Optional: setRenderMode('external') + renderFrame() for a single app rAF loop

食谱 : 多图烹饪本 • 妇女 流线仪表板。 。 。 .


浏览器支持

仅限WebGPU. 无 WebGL 路径 .

浏览器支助
颜色/边缘113+ (英语)
萨法里18岁以上
火花Windows 114+; macOS 145+; Linux 不完整 — 见 gpuweb 状态

检测 navigator.gpu 在创建图表之前。 不要将一个不支持的用户留在空白的画布上, 没有UI.

如果您需要 Canvas/SVG 或双重WebGL+WebGPU 后端,请使用一个库来运送这些后退.


文档

资源说明
Docs 枢机指南和系列文件
开始安装和第一个图表
API 参考create,选项,流出,交互,3D
图表系列、轴、互动
流线仪表板多图共享设备
说明线条、标记、标签
业绩密度、采样、GPU共享
他们暗/ 轻/ 自定义
建筑渲染路径( repo)
内部贡献者
examples/本地维特样本
npm install
npm run dev
# open the examples URL printed by the dev server

捐款

见 捐款额 财务报告和审定财务报表 文献/档案。 。 。 .

许可证

麻省理工学院. 免费供商业使用。 没有 npm 运行时间依赖性 .

版本与发布记录

@chartgpu/chartgpu 共发布 17 个版本,首次发布于 2026/02/11;过去 12 个月发布了 17 个版本。

版本发布日期距今
0.4.0latest2026/08/033 个月前
0.3.102026/08/013 个月前
0.3.92026/07/303 个月前
0.3.82026/07/303 个月前
0.3.72026/07/283 个月前
0.3.62026/07/223 个月前

关于 @chartgpu/chartgpu 的常见问题

@chartgpu/chartgpu 是什么?

高性能 WebGPU 绘图库

如何安装 @chartgpu/chartgpu?

在项目目录运行 npm install @chartgpu/chartgpu,或使用 pnpm add / yarn add / bun add。

@chartgpu/chartgpu 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@chartgpu/chartgpu 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@chartgpu/chartgpu 可以商用吗?

@chartgpu/chartgpu 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@chartgpu/chartgpu 的下载量有多少?

根据 npm 官方下载统计,@chartgpu/chartgpu 在 2026/10/10 – 2026/11/08 这 30 天内被下载 4,173 次,日均约 139 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@chartgpu/chartgpu 还在维护吗?

最新版本 0.4.0 发布于 2026/08/03(3 个月前);至今共发布 17 个版本,其中过去 12 个月发布了 17 个;首次发布于 2026/02/11。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。