Sixtyfold Charts

针对大型折线序列和 OHLCV 数据集的 Canvas2D 图表。

Sixtyfold Charts 是一个 TypeScript 和 Canvas2D 图表库,适用于常规 DOM 或 SVG 呈现无法处理的大型数据集。浏览器图表在支持时使用 Web Worker 以将准备和渲染移出 UI 线程;在需要时相同的渲染器会回退到主线程。

对多系列折线、阶梯、区间、点、条形和堆叠面积使用 @sixtyfold/line。对 OHLCV 蜡烛图、成交量、指标、成交量分布、价格线和事件标记使用 @sixtyfold/stock

浏览器图表运行时没有第三方依赖:Core、Line 和 Stock 仅依赖 Sixtyfold 包。框架适配器重用宿主应用中已有的框架,而可选的 MCP 开发工具独立运行,且绝不进入图表包中。

从这里开始

  1. 仅安装所需的包
  2. 构建一个折线图股票图
  3. 选择原生 vanilla TypeScript 或框架适配器
  4. 在加载生产数据前阅读已键入数组所有权契约

每个浏览器集成都具有相同的生命周期:

const chart = new LineChart(canvas, options);
await chart.initialize();
chart.setMultiSeriesData(data);

// When the view is permanently removed:
chart.destroy();

细节层级(LOD)

LOD 意味着细节层级。它是图表针对更大数据集的自动屏幕尺寸表示:折线图保留重要的极值和间隙,而股票图将蜡烛合并为有效的 OHLCV 区间。缩放时会显示更细的细节。

相同的原理在 3D 游戏中也很常见:远处物体使用更简单的模型,因为屏幕无法显示每个多边形,随着相机靠近会增加细节。在图表中,可见范围取代了相机距离——概览绘制受限的摘要而不是数百万个无法区分的样本,缩放时恢复更细的数据。默认设置适用于大多数应用。

更进一步

项目谱系

Sixtyfold Charts 源自构建其前身 99ff00/react-charty 时获得的经验教训。Sixtyfold 是一种新的架构和产品,而非简单的重命名发布。

研究基础

Sixtyfold 的渲染器和 LOD 系统是原创的 TypeScript 实现。下列出版物为设计提供了信息;这些链接承认该传承,而非代码来源、关联或认可。

直接影响

评估的替代方案

  • 为可视化表示对时间序列进行下采样 — Sveinn Steinarsson,冰岛大学(2013)。介绍了在设计期间评估的最大三角三桶(LTTB)家族。Sixtyfold 不实现 LTTB;其生产线 LOD 使用保留极值的分层区间摘要。

这些引用仅描述研究影响。Sixtyfold 不再现 论文文本、图表或参考实现。出版物和代码 许可证与 Sixtyfold 许可证分开。