Skip to content

标注 ​

标注用于在 2D 图表上标记参考值:水平线和竖直线、x 区间和 y 区间、数据点标记以及自由文本。标注以数据单位放置,跟随缩放和平移,并裁剪到绘图区内。

在线示例

基本用法 ​

ts
import { Charturbo } from 'charturbo';

const sdk = await Charturbo.create(canvas);
sdk.renderLineChart(series, { title: '延迟' });
sdk.setAnnotations([
  { type: 'hline', y: 250, label: 'SLO 250', dash: true, color: [0.94, 0.35, 0.33, 1], z: 'above' },
  { type: 'xband', from: 6800, to: 7000, label: '故障区间', opacity: 0.16 },
  { type: 'point', x: 6900, y: 312, width: 6 }, // 标记半径,CSS px
  { type: 'text', x: 100, y: 40, text: '发布 v2.3' },
]);
sdk.addAnnotation({ type: 'vline', x: new Date('2026-02-01'), labelPosition: 'start' });
sdk.render();

请在 render 调用之后调用 setAnnotations:渲染新图表会清除标注。

标注类型 ​

type字段绘制内容
'hline'y水平参考线
'vline'x竖直参考线
'yband'from、to两个 y 值之间的水平区间
'xband'from、to两个 x 值之间的竖直区间
'point'x、y数据点标记
'text'x、y、text以该点为中心的文本

区间端点可以是 Infinity 或 -Infinity,此时区间延伸到绘图区边缘。

坐标 ​

坐标使用当前图表的数据单位:

  • 折线图和面积图:x 为样本索引;若图表带有 x,则为系列 x 值(时间轴为 epoch ms 或 Date)。y 为数值。
  • 柱状图:x 为类目索引(允许小数)。设置 orientation: 'horizontal' 时,x 为数值,y 为类目索引。
  • 散点图:x 和 y 值。
  • K 线图、组合图和瀑布图按各自的坐标轴映射 x 和 y。

标注在上述图表的 2D 视图中生效。热力图、箱线图、饼图、雷达图、仪表盘、漏斗图、层级图表和 3D 图表不显示标注。支持对数轴和反向轴。

样式选项 ​

选项类型默认值说明
colorColorInput主题 baseline(线、点),主题 crosshair(区间)线、标记或区间的颜色
widthnumber线 1.5,点 5,区间 0(无边框)线 / 区间边框宽度(CSS px),或点的半径
dashnumber | boolean无虚线长度,CSS px;true = 6 px
opacitynumber区间 0.18,其他 1透明度系数
labelstring—DOM 标签(小胶囊)
labelPosition'start' | 'end' | 'center''end'标签沿线或区间的位置:start = 左 / 下,end = 右 / 上
z'below' | 'above''below''below':与网格线一起位于系列下方。'above':位于系列上方、悬停层下方
yAxis'left' | 'right''left'双 y 轴折线图中 y 与 y 区间所用的坐标轴

文本标注以纯文本绘制 text;其他类型以带标注颜色边框的胶囊绘制 label。

管理标注 ​

ts
sdk.setAnnotations(list);            // 全部替换
const i = sdk.addAnnotation(item);   // 追加并返回其索引
sdk.getAnnotations();                // 当前列表的副本
sdk.clearAnnotations();
sdk.render();
  • 无效颜色会抛出错误,当前列表保持不变。
  • 默认颜色跟随主题:setTheme 会重新着色未指定 color 的标注。

双 y 轴 ​

在带右轴的折线图中,设置 yAxis: 'right' 后,y、from、to 按右轴读取。若没有右轴系列,则使用左轴。

ts
sdk.setAnnotations([{ type: 'hline', y: 100, yAxis: 'right', label: '暴雨阈值' }]);

说明 ​

  • 引擎将数据单位映射到屏幕、裁剪图形并在 GPU 上绘制(区间三角形、线段、标记)。标签是放置在引擎报告的锚点处的 DOM 元素,仅在锚点移动时重新定位。
  • 标签元素的 class 为 charturbo-sdk-annotation-label。
  • SVG 导出包含标注。

另请参阅 ​

MIT License