@damoqiongqiu/ice-chart 0.30.12 → 0.30.14
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 +14 -4
- 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 +41 -0
- package/dist/types/ICEChart.d.ts +41 -0
- package/dist/types/components/Axis.d.mts +13 -0
- package/dist/types/components/Axis.d.ts +13 -0
- package/dist/types/components/Crosshair.d.mts +7 -1
- package/dist/types/components/Crosshair.d.ts +7 -1
- package/dist/types/components/Tooltip.d.mts +6 -1
- package/dist/types/components/Tooltip.d.ts +6 -1
- package/dist/types/components/series/BeeswarmSeries.d.mts +23 -0
- package/dist/types/components/series/BeeswarmSeries.d.ts +23 -0
- package/dist/types/components/series/HeatmapSeries.d.mts +13 -0
- package/dist/types/components/series/HeatmapSeries.d.ts +13 -0
- package/dist/types/components/series/HexbinSeries.d.mts +45 -0
- package/dist/types/components/series/HexbinSeries.d.ts +45 -0
- package/dist/types/components/series/ViolinSeries.d.mts +34 -0
- package/dist/types/components/series/ViolinSeries.d.ts +34 -0
- package/dist/types/components/series/index.d.mts +4 -1
- package/dist/types/components/series/index.d.ts +4 -1
- package/dist/types/index.d.mts +3 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/interaction/HitResolver.d.mts +19 -2
- package/dist/types/interaction/HitResolver.d.ts +19 -2
- package/dist/types/internal.d.mts +33 -0
- package/dist/types/internal.d.ts +33 -0
- package/dist/types/layout/density.d.mts +62 -0
- package/dist/types/layout/density.d.ts +62 -0
- package/dist/types/layout/hexbin.d.mts +48 -0
- package/dist/types/layout/hexbin.d.ts +48 -0
- package/dist/types/layout/panels.d.mts +35 -0
- package/dist/types/layout/panels.d.ts +35 -0
- package/dist/types/types.d.mts +71 -1
- package/dist/types/types.d.ts +71 -1
- package/dist/types/util/color.d.mts +8 -0
- package/dist/types/util/color.d.ts +8 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -115,10 +115,11 @@ gray-100~900、`--bs-border-radius`、`--bs-body-font-family`),图表放进
|
|
|
115
115
|
|
|
116
116
|
| 能力 | 状态 | 说明 |
|
|
117
117
|
| --- | --- | --- |
|
|
118
|
-
| 系列类型 | line / area / bar(含横向)/ scatter(含气泡)/ pie(含环形、玫瑰)/ radar / heatmap / sankey / funnel / gauge / boxplot / waterfall / treemap / graph / function / parametric | 见下方「图表类型与写法」 |
|
|
118
|
+
| 系列类型 | line / area / bar(含横向)/ scatter(含气泡)/ pie(含环形、玫瑰)/ radar / heatmap / **hexbin(蜂窝分箱)** / sankey / funnel / gauge / boxplot / **violin(含半宽)/ beeswarm** / waterfall / treemap / graph / function / parametric | 见下方「图表类型与写法」 |
|
|
119
119
|
| 比例尺 | linear / category / time / log | time 轴按跨度自动切换毫秒~年粒度 |
|
|
120
120
|
| 坐标系 | 直角坐标 / 极坐标(饼图) / 雷达 / 桑基图 | 按系列类型自动切换场景 |
|
|
121
121
|
| 坐标轴 | x + **多 y 轴**(左右可配) | 刻度、网格、轴名、标签旋转与自动抽稀、自定义 formatter、**数据域留白 `padding`(默认 5%)** |
|
|
122
|
+
| 面板矩阵(小倍数) | `matrix: { rows, columns, gap }` + `series[].panel` | 一张画布 N 个同构面板,**共享数据域**;轴只画外圈,悬停 / 框选 / 缩放按**指针所在面板**解析;`columns: [4, 1]` 的权重即「主图 + 窄条」。不给 `matrix` 时行为逐像素不变 |
|
|
122
123
|
| 图例 | top / bottom / left / right | **可点击切换系列 / 扇区显隐**并重算数据域 |
|
|
123
124
|
| 提示框 | axis / item 触发器 | 画在画布内(不依赖 HTML 浮层);箱线图给五数概括、桑基给流量 |
|
|
124
125
|
| 十字准星 | x / y / xy | 带坐标轴数值标签;跟随时长按距离缩放(`crosshair.followDuration`,默认上限 90ms,`0` = 立即跟随) |
|
|
@@ -131,7 +132,7 @@ gray-100~900、`--bs-border-radius`、`--bs-body-font-family`),图表放进
|
|
|
131
132
|
| 跨图联动 | hover / zoom / brush | `linkCharts([a, b])`,按 x 数据值对齐 |
|
|
132
133
|
| 动画 | 进入与数据更新 | 走引擎的 `AnimationManager`(`state.progress` 驱动) |
|
|
133
134
|
| 主题 | light / dark / 自定义片段 | 默认色板取自 ice-render 的设计 token |
|
|
134
|
-
| 大数据 | LTTB 降采样 + 二分命中 + 列存(虚拟)系列 | 5 万点 × 3 系列构建 35ms,每条曲线只绘制约 2 点/像素;**100 万点散点**开 `virtual: true` 后堆 2.2MB、命中 0.00ms —— [机制与复用边界](./docs/column-store-virtual-series.md) |
|
|
135
|
+
| 大数据 | LTTB 降采样 + 二分命中 + 列存(虚拟)系列 | 5 万点 × 3 系列构建 35ms,每条曲线只绘制约 2 点/像素;**100 万点散点**开 `virtual: true` 后堆 2.2MB、命中 0.00ms —— [机制与复用边界](./docs/10-column-store-virtual-series.md) |
|
|
135
136
|
| 无障碍 | 数据表镜像 + aria-live 播报 | `attachA11yMirror()` / `getDataTable()` / `getA11yTree()` |
|
|
136
137
|
|
|
137
138
|
> **内置文案可配**:无障碍数据表的表头与默认 tooltip 标签可以用 `option.labels` 覆盖
|
|
@@ -181,7 +182,7 @@ gray-100~900、`--bs-border-radius`、`--bs-body-font-family`),图表放进
|
|
|
181
182
|
| `bar` | 类目在 x(默认) | 分组(多系列)与堆叠(同 `stack` 名);数据项写 `{ value, color }` 可**逐项配色** |
|
|
182
183
|
| `bar`(横向) | `yAxis: { type: 'category', data: [...] }` + `xAxis: { type: 'value' }` | 排行榜;类目也可写在数据项的 `name` 上 |
|
|
183
184
|
| `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
|
+
| `scatter` / `line` / `area`(大数据) | `virtual: true` + `data: { x, y }`(列式,推荐 `Float64Array`) | 列存(虚拟)系列:百万级点不建数据点对象与按点缓存,堆 2.2MB / 命中 0.00ms(折线按像素列保留极值)。代价(不进快照、`params.data` 为空)见 [机制与复用边界](./docs/10-column-store-virtual-series.md) |
|
|
185
186
|
| `heatmap`(大数据) | `virtual: true` + `data: { xCategories, yCategories, values }`(稠密矩阵) | 列存矩阵:1000×1000 = 100 万格堆 3.3MB、命中 O(1)(普通路 4 万格单次命中已 6.8ms);亚像素按屏幕像素块聚合,热点取最大值 |
|
|
186
187
|
| 实时流(大数据) | `virtual: true` + `appendData(id, items, { maxPoints })` | 列存环形缓冲:窗口满了覆盖最老的,不 concat、不重建。10 万点窗口 **0.40ms/次**(普通路径 5.80ms、p95 15.10ms) |
|
|
187
188
|
| 亿级数据 | `virtual: true` + `data: { sizes, rangeOf, yDomain, loadChunk }` | 分块按需加载:只驻留可见窗口的块。**10 亿逻辑点**(1 万块、常驻 3 块)初始化 3ms、堆 2.7MB |
|
|
@@ -189,6 +190,8 @@ gray-100~900、`--bs-border-radius`、`--bs-body-font-family`),图表放进
|
|
|
189
190
|
| `pie` | `data: [{ name, value }]` | `innerRadius` 出环形,`roseType` 出玫瑰图;扇区可点图例隐藏 |
|
|
190
191
|
| `radar` | `radar.indicators` + `data: [数值...]` | 一个系列一个多边形,顶点命中 |
|
|
191
192
|
| `boxplot` | `data: [[min, Q1, median, Q3, max]]` 或一组原始观测值 | 恰好 5 个数按五数概括解释,其它长度自动算分位数;命中覆盖整条须 |
|
|
193
|
+
| `violin` | `data: [[观测值...], ...]`(或 `{ name, values }`),带宽走 `violin.bandwidth` | 核密度轮廓(Silverman 带宽的高斯核),`violin.side` 出半小提琴;命中是**轮廓内部**;提示框给观测数与五数概括 |
|
|
194
|
+
| `beeswarm` | `data: [['类目', 值], ...]`(与散点同形),宽度走 `spread` | 同类目里挤在一起的点横向避让一个直径(超容量退化成确定性抖动);逐点命中;**与 `violin` / `boxplot` 同轴叠放就是雨云图** |
|
|
192
195
|
| `heatmap` | `data: [[x类目, y类目, 数值]]` | y 轴自动变类目轴,颜色线性插值 |
|
|
193
196
|
| `waterfall` | `data: [{ name, value }]`,合计项标 `total: true` | 增/减/合计三色 + 连接虚线 |
|
|
194
197
|
| `funnel` | `data: [{ name, value }]` | 阶段梯形、`minSize` 保护最小阶段、图例按阶段显隐 |
|
|
@@ -490,6 +493,10 @@ chart.destroy();
|
|
|
490
493
|
|
|
491
494
|
## 架构
|
|
492
495
|
|
|
496
|
+
> 要改这个库的代码,请先读 **[`docs/`](./docs/README.md)** —— 那里是技术与架构文档的索引:
|
|
497
|
+
> 架构与分层、更新流水线、渲染与组件契约、交互与命中、数据形态与大数据、图表类型与场景坐标、
|
|
498
|
+
> 主题与无障碍、测试与发版。仓库纪律(铁律)在 [`AGENTS.md`](./AGENTS.md)。
|
|
499
|
+
|
|
493
500
|
### 序列化:持久化的单位是 option 快照,不是组件树
|
|
494
501
|
|
|
495
502
|
- `chart.toJSON()` 产出 `{ version, option, view, hidden, hiddenSlices }`:
|
|
@@ -560,6 +567,9 @@ npm run examples:serve # http://localhost:5177
|
|
|
560
567
|
|
|
561
568
|
示例页面覆盖:基础折线 / 面积、分组与堆叠柱形、多 y 轴叠加、饼图 / 环形图 / 玫瑰图、雷达图、
|
|
562
569
|
热力图、桑基图、交互总览(框选 + 多选 + 键盘 + 事件日志)、时间轴 + dataZoom 滑块、
|
|
570
|
+
分布组图(小提琴 / 蜂群 / 箱线叠成的雨云图)、
|
|
571
|
+
面板矩阵(小倍数:2×3 共享比例尺 + 主图/窄条权重)、
|
|
572
|
+
六边形分箱(点云聚成蜂窝格,细格/粗格对照)、
|
|
563
573
|
大数据量(5 万点降采样 / **100 万点列存虚拟化:散点 + 折线**)、无障碍、跨图联动、迷你 MATLAB,以及 **5 个深色大屏**
|
|
564
574
|
(运营 / 设备 / 能源 / 物流 / 函数实验)。
|
|
565
575
|
|
|
@@ -665,7 +675,7 @@ node scripts/audit-space.mjs # 104 张示例图:直角坐标占宽 ≥
|
|
|
665
675
|
|
|
666
676
|
- 桑基节点拖拽重排与折叠(布局已与渲染解耦,扩展成本低)
|
|
667
677
|
- 数据 append 的增量绘制(当前是全量重建像素缓存;列存 + 环形缓冲是它的落地路径)
|
|
668
|
-
- 把列存推广到折线 / 面积与热力图(模板与边界见 `docs/column-store-virtual-series.md`)
|
|
678
|
+
- 把列存推广到折线 / 面积与热力图(模板与边界见 `docs/10-column-store-virtual-series.md`)
|
|
669
679
|
- y 轴方向的 dataZoom 滑块(`setAxisDomain` 已可用,缺 UI)
|
|
670
680
|
- 标注的第二梯队:树图 / 日历热力(层级与时间热力的标配)、趋势线与误差棒(按需;
|
|
671
681
|
冷门形态走自定义系列注册口)
|