@damoqiongqiu/ice-chart 0.27.4 → 0.29.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +23 -18
- package/dist/index.cjs +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.umd.js +1 -1
- package/dist/types/ICEChart.d.mts +59 -5
- package/dist/types/ICEChart.d.ts +59 -5
- package/dist/types/a11y.d.mts +13 -2
- package/dist/types/a11y.d.ts +13 -2
- package/dist/types/components/Axis.d.mts +1 -1
- package/dist/types/components/Axis.d.ts +1 -1
- package/dist/types/components/GridLines.d.mts +8 -0
- package/dist/types/components/GridLines.d.ts +8 -0
- package/dist/types/components/series/HeatmapSeries.d.mts +47 -0
- package/dist/types/components/series/HeatmapSeries.d.ts +47 -0
- package/dist/types/components/series/LineSeries.d.mts +32 -3
- package/dist/types/components/series/LineSeries.d.ts +32 -3
- package/dist/types/components/series/ScatterSeries.d.mts +26 -0
- package/dist/types/components/series/ScatterSeries.d.ts +26 -0
- package/dist/types/components/series/SeriesBase.d.mts +53 -2
- package/dist/types/components/series/SeriesBase.d.ts +53 -2
- package/dist/types/components/series/index.d.mts +0 -1
- package/dist/types/components/series/index.d.ts +0 -1
- package/dist/types/index.d.mts +0 -1
- package/dist/types/index.d.ts +0 -1
- package/dist/types/interaction/InteractionController.d.mts +40 -1
- package/dist/types/interaction/InteractionController.d.ts +40 -1
- package/dist/types/internal.d.mts +134 -2
- package/dist/types/internal.d.ts +134 -2
- package/dist/types/layout/layout.d.mts +18 -1
- package/dist/types/layout/layout.d.ts +18 -1
- package/dist/types/option/normalize.d.mts +20 -1
- package/dist/types/option/normalize.d.ts +20 -1
- package/dist/types/types.d.mts +121 -9
- package/dist/types/types.d.ts +121 -9
- package/dist/types/util/chunks.d.mts +105 -0
- package/dist/types/util/chunks.d.ts +105 -0
- package/dist/types/util/ring.d.mts +70 -0
- package/dist/types/util/ring.d.ts +70 -0
- package/dist/types/util/zoomLimit.d.mts +31 -0
- package/dist/types/util/zoomLimit.d.ts +31 -0
- package/package.json +4 -4
- package/dist/types/components/series/CandlestickSeries.d.mts +0 -13
- package/dist/types/components/series/CandlestickSeries.d.ts +0 -13
package/README.md
CHANGED
|
@@ -115,12 +115,12 @@ gray-100~900、`--bs-border-radius`、`--bs-body-font-family`),图表放进
|
|
|
115
115
|
|
|
116
116
|
| 能力 | 状态 | 说明 |
|
|
117
117
|
| --- | --- | --- |
|
|
118
|
-
| 系列类型 | line / area / bar(含横向)/ scatter(含气泡)/ pie(含环形、玫瑰)/ radar /
|
|
118
|
+
| 系列类型 | line / area / bar(含横向)/ scatter(含气泡)/ pie(含环形、玫瑰)/ radar / heatmap / sankey / funnel / gauge / boxplot / waterfall / treemap / graph / function / parametric | 见下方「图表类型与写法」 |
|
|
119
119
|
| 比例尺 | linear / category / time / log | time 轴按跨度自动切换毫秒~年粒度 |
|
|
120
120
|
| 坐标系 | 直角坐标 / 极坐标(饼图) / 雷达 / 桑基图 | 按系列类型自动切换场景 |
|
|
121
121
|
| 坐标轴 | x + **多 y 轴**(左右可配) | 刻度、网格、轴名、标签旋转与自动抽稀、自定义 formatter、**数据域留白 `padding`(默认 5%)** |
|
|
122
122
|
| 图例 | top / bottom / left / right | **可点击切换系列 / 扇区显隐**并重算数据域 |
|
|
123
|
-
| 提示框 | axis / item 触发器 | 画在画布内(不依赖 HTML
|
|
123
|
+
| 提示框 | axis / item 触发器 | 画在画布内(不依赖 HTML 浮层);箱线图给五数概括、桑基给流量 |
|
|
124
124
|
| 十字准星 | x / y / xy | 带坐标轴数值标签;跟随时长按距离缩放(`crosshair.followDuration`,默认上限 90ms,`0` = 立即跟随) |
|
|
125
125
|
| 悬停高亮 | 圆环 / 柱形描边 | 可配置 `dimOthers` 压暗其他系列 |
|
|
126
126
|
| 选中 | single / multiple | 点击或键盘 Enter,抛出 `select:change` |
|
|
@@ -131,7 +131,7 @@ gray-100~900、`--bs-border-radius`、`--bs-body-font-family`),图表放进
|
|
|
131
131
|
| 跨图联动 | hover / zoom / brush | `linkCharts([a, b])`,按 x 数据值对齐 |
|
|
132
132
|
| 动画 | 进入与数据更新 | 走引擎的 `AnimationManager`(`state.progress` 驱动) |
|
|
133
133
|
| 主题 | light / dark / 自定义片段 | 默认色板取自 ice-render 的设计 token |
|
|
134
|
-
| 大数据 | LTTB 降采样 + 二分命中 | 5 万点 × 3 系列构建 35ms,每条曲线只绘制约 2
|
|
134
|
+
| 大数据 | LTTB 降采样 + 二分命中 + 列存(虚拟)系列 | 5 万点 × 3 系列构建 35ms,每条曲线只绘制约 2 点/像素;**100 万点散点**开 `virtual: true` 后堆 2.2MB、命中 0.00ms —— [机制与复用边界](./docs/column-store-virtual-series.md) |
|
|
135
135
|
| 无障碍 | 数据表镜像 + aria-live 播报 | `attachA11yMirror()` / `getDataTable()` / `getA11yTree()` |
|
|
136
136
|
|
|
137
137
|
> **内置文案可配**:无障碍数据表的表头与默认 tooltip 标签可以用 `option.labels` 覆盖
|
|
@@ -181,9 +181,13 @@ gray-100~900、`--bs-border-radius`、`--bs-body-font-family`),图表放进
|
|
|
181
181
|
| `bar` | 类目在 x(默认) | 分组(多系列)与堆叠(同 `stack` 名);数据项写 `{ value, color }` 可**逐项配色** |
|
|
182
182
|
| `bar`(横向) | `yAxis: { type: 'category', data: [...] }` + `xAxis: { type: 'value' }` | 排行榜;类目也可写在数据项的 `name` 上 |
|
|
183
183
|
| `scatter` | `data: [[x, y, size]]` + `symbolSizeRange` | 第三维映射成直径即气泡图;`symbolSize` 也可传函数 |
|
|
184
|
+
| `scatter` / `line` / `area`(大数据) | `virtual: true` + `data: { x, y }`(列式,推荐 `Float64Array`) | 列存(虚拟)系列:百万级点不建数据点对象与按点缓存,堆 2.2MB / 命中 0.00ms(折线按像素列保留极值)。代价(不进快照、`params.data` 为空)见 [机制与复用边界](./docs/column-store-virtual-series.md) |
|
|
185
|
+
| `heatmap`(大数据) | `virtual: true` + `data: { xCategories, yCategories, values }`(稠密矩阵) | 列存矩阵:1000×1000 = 100 万格堆 3.3MB、命中 O(1)(普通路 4 万格单次命中已 6.8ms);亚像素按屏幕像素块聚合,热点取最大值 |
|
|
186
|
+
| 实时流(大数据) | `virtual: true` + `appendData(id, items, { maxPoints })` | 列存环形缓冲:窗口满了覆盖最老的,不 concat、不重建。10 万点窗口 **0.40ms/次**(普通路径 5.80ms、p95 15.10ms) |
|
|
187
|
+
| 亿级数据 | `virtual: true` + `data: { sizes, rangeOf, yDomain, loadChunk }` | 分块按需加载:只驻留可见窗口的块。**10 亿逻辑点**(1 万块、常驻 3 块)初始化 3ms、堆 2.7MB |
|
|
188
|
+
| 交给引擎 | `chart.createVirtualSource(id)` → `ICEVirtualLayer` | 列**不复制**直接喂给引擎虚拟子源:窗口裁剪/批量落墨/命中归引擎,白拿「命中即物化」、SVG 导出、对齐参考线;100 万点落墨 2.1ms/帧、命中 0.00ms |
|
|
184
189
|
| `pie` | `data: [{ name, value }]` | `innerRadius` 出环形,`roseType` 出玫瑰图;扇区可点图例隐藏 |
|
|
185
190
|
| `radar` | `radar.indicators` + `data: [数值...]` | 一个系列一个多边形,顶点命中 |
|
|
186
|
-
| `candlestick` | `data: [[open, close, low, high]]` | 影线进数据域,提示框给 OHLC |
|
|
187
191
|
| `boxplot` | `data: [[min, Q1, median, Q3, max]]` 或一组原始观测值 | 恰好 5 个数按五数概括解释,其它长度自动算分位数;命中覆盖整条须 |
|
|
188
192
|
| `heatmap` | `data: [[x类目, y类目, 数值]]` | y 轴自动变类目轴,颜色线性插值 |
|
|
189
193
|
| `waterfall` | `data: [{ name, value }]`,合计项标 `total: true` | 增/减/合计三色 + 连接虚线 |
|
|
@@ -214,19 +218,18 @@ chart.appendData('cpu', [[t, v1], [t2, v2]], { maxPoints: 180, animate: true });
|
|
|
214
218
|
—— 监控场景用 120~300 点的窗口最划算。
|
|
215
219
|
|
|
216
220
|
配套示例 [examples/live-stream.html](./examples/live-stream.html):四条曲线共用一个数据发生器 ——
|
|
217
|
-
滑动窗口折线 / 弹簧指针仪表盘 / 每 250ms 左移一列的滚动热力图 /
|
|
221
|
+
滑动窗口折线 / 弹簧指针仪表盘 / 每 250ms 左移一列的滚动热力图 / 最后一根实时跳动的峰值柱形,
|
|
218
222
|
外加暂停、1×/2×/4× 速度、注入尖峰与 fps 统计。
|
|
219
223
|
|
|
220
224
|
### 大屏(深色主题)
|
|
221
225
|
|
|
222
|
-
同一个脚手架([examples/assets/dash-kit.js](./examples/assets/dash-kit.js)
|
|
226
|
+
同一个脚手架([examples/assets/dash-kit.js](./examples/assets/dash-kit.js))下**五个大屏案例**,
|
|
223
227
|
每个只是「换一套视觉身份 + 换一张面板清单」:
|
|
224
228
|
|
|
225
229
|
| 大屏 | 视觉身份 | 侧重 |
|
|
226
230
|
| --- | --- | --- |
|
|
227
231
|
| [运营监控](./examples/dashboard.html) | 青 | 12 张图共用一条数据流,跨图三路联动 + 告警亮边 |
|
|
228
|
-
| [设备监控](./examples/dashboard-iot.html) | 青绿 | 水位球 / 设备状态热力 /
|
|
229
|
-
| [行情监控](./examples/dashboard-market.html) | 琥珀 + 红涨绿跌 | 分时 / 盘口六档 / 资金流桑基 / 换手水位球 |
|
|
232
|
+
| [设备监控](./examples/dashboard-iot.html) | 青绿 | 水位球 / 设备状态热力 / 心跳峰值 / 固件占比 |
|
|
230
233
|
| [能源调度](./examples/dashboard-energy.html) | 蓝紫 | 源网荷桑基 / 电量平衡瀑布 / **谐波合成(函数绘图)** |
|
|
231
234
|
| [物流调度](./examples/dashboard-logistics.html) | 橙红 | 分拣漏斗 / 包裹流向 / 逐项配色的排名与时段柱 |
|
|
232
235
|
| [函数实验](./examples/dashboard-lab.html) | 紫 | 参数扫动 / 极坐标 / 采样密度 / 表达式诊断 |
|
|
@@ -356,7 +359,7 @@ animation: {
|
|
|
356
359
|
`chart.finishAnimations()` 可把当前动画一次性推到终态(截图 / 测试用)。
|
|
357
360
|
|
|
358
361
|
各类型的入场形态:柱形从基线错峰长出、折线/面积从左到右画出来、气泡依次弹出、
|
|
359
|
-
|
|
362
|
+
饼图/玫瑰图扇形依次扫开、雷达从中心展开、瀑布图逐段累加、箱线图从中位线展开、
|
|
360
363
|
热力图沿对角线逐格浮现、漏斗从等宽收拢成漏斗、仪表盘指针扫到目标值(可配弹簧回弹)、
|
|
361
364
|
桑基连线从源流向目标、矩形树图逐层展开、关系图从环形铺开**收敛到力布局结果**。
|
|
362
365
|
|
|
@@ -536,7 +539,7 @@ const restored = createChart('canvas-2', json); // 还原:语义 / 窗口 /
|
|
|
536
539
|
│ ICEGroup(root) │
|
|
537
540
|
│ ├ PlotArea 绘图区背景 + 空白处交互面 │
|
|
538
541
|
│ ├ GridLines 网格线 │
|
|
539
|
-
│ ├ LineSeries / BarSeries / PieSeries / RadarSeries /
|
|
542
|
+
│ ├ LineSeries / BarSeries / PieSeries / RadarSeries / BoxplotSeries / ... ← containsLocalPoint 即数据命中判定
|
|
540
543
|
│ ├ Axis × N 坐标轴(多 y 轴) │
|
|
541
544
|
│ ├ RadarGrid 雷达网格(仅雷达场景) │
|
|
542
545
|
│ ├ Title / Legend │
|
|
@@ -556,14 +559,14 @@ npm run examples:serve # http://localhost:5177
|
|
|
556
559
|
```
|
|
557
560
|
|
|
558
561
|
示例页面覆盖:基础折线 / 面积、分组与堆叠柱形、多 y 轴叠加、饼图 / 环形图 / 玫瑰图、雷达图、
|
|
559
|
-
|
|
560
|
-
大数据量(5
|
|
561
|
-
(运营 / 设备 /
|
|
562
|
+
热力图、桑基图、交互总览(框选 + 多选 + 键盘 + 事件日志)、时间轴 + dataZoom 滑块、
|
|
563
|
+
大数据量(5 万点降采样 / **100 万点列存虚拟化:散点 + 折线**)、无障碍、跨图联动、迷你 MATLAB,以及 **5 个深色大屏**
|
|
564
|
+
(运营 / 设备 / 能源 / 物流 / 函数实验)。
|
|
562
565
|
|
|
563
|
-
|
|
564
|
-
每个大屏只换一套配色身份与面板清单 ——
|
|
566
|
+
五个大屏共用同一套脚手架(`examples/assets/dash-kit.js`:12 列栅格 + 面板组件 + 数据流主循环),
|
|
567
|
+
每个大屏只换一套配色身份与面板清单 —— 底色与主色同源,是「同一个库、不同视觉身份」的五种样子:
|
|
565
568
|
|
|
566
|
-

|
|
567
570
|
|
|
568
571
|
每个示例页在图表下方都有两块面板:
|
|
569
572
|
|
|
@@ -655,12 +658,14 @@ node scripts/audit-space.mjs # 104 张示例图:直角坐标占宽 ≥
|
|
|
655
658
|
## 路线图
|
|
656
659
|
|
|
657
660
|
已落地:极坐标(饼图 / 玫瑰图)、雷达图、多 y 轴、dataZoom 滑块、LTTB 降采样与二分命中、
|
|
658
|
-
|
|
661
|
+
**列存(虚拟)系列**(百万级散点,`virtual: true`)、无障碍(数据表镜像 + 播报)、
|
|
662
|
+
热力图、桑基图、标注(目标线 / 异常点 / 目标区间)。
|
|
659
663
|
|
|
660
664
|
后续候选:
|
|
661
665
|
|
|
662
666
|
- 桑基节点拖拽重排与折叠(布局已与渲染解耦,扩展成本低)
|
|
663
|
-
- 数据 append
|
|
667
|
+
- 数据 append 的增量绘制(当前是全量重建像素缓存;列存 + 环形缓冲是它的落地路径)
|
|
668
|
+
- 把列存推广到折线 / 面积与热力图(模板与边界见 `docs/column-store-virtual-series.md`)
|
|
664
669
|
- y 轴方向的 dataZoom 滑块(`setAxisDomain` 已可用,缺 UI)
|
|
665
670
|
- 标注的第二梯队:树图 / 日历热力(层级与时间热力的标配)、趋势线与误差棒(按需;
|
|
666
671
|
冷门形态走自定义系列注册口)
|