@damoqiongqiu/ice-chart 0.30.17 → 0.30.19

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 CHANGED
@@ -118,7 +118,7 @@ gray-100~900、`--bs-border-radius`、`--bs-body-font-family`),图表放进
118
118
  | 系列类型 | line / area / bar(含横向)/ scatter(含气泡)/ pie(含环形、玫瑰)/ radar / heatmap / **hexbin(蜂窝分箱)** / sankey / **alluvial(多轴分类流)** / funnel / gauge / boxplot / **violin(含半宽)/ beeswarm** / waterfall / treemap / graph / **calendar(日历热力)** / function / parametric | 见下方「图表类型与写法」 |
119
119
  | 比例尺 | linear / category / time / log | time 轴按跨度自动切换毫秒~年粒度 |
120
120
  | 坐标系 | 直角坐标 / 极坐标(饼图)/ 雷达 / 桑基 / 漏斗 / 仪表盘 / 水位球 / 树图 / 关系图 / 日历 / 多轴分类流 | 按系列类型自动切换场景,即 `normalizeOption` 返回的 `norm.kind`(11 个场景) |
121
- | 坐标轴 | x + **多 y 轴**(左右可配) | 刻度、网格、轴名、标签旋转与自动抽稀、自定义 formatter、**数据域留白 `padding`(默认 5%)** |
121
+ | 坐标轴 | x + **多 y 轴**(左右可配) | 刻度、网格、轴名、标签旋转与自动抽稀、自定义 formatter、**数据域留白 `padding`(默认 5%)**、**首末标签留白 `xAxis.edgeLabelPadding`(默认 12px,只在不够时从绘图区里让位)** |
122
122
  | 面板矩阵(小倍数) | `matrix: { rows, columns, gap }` + `series[].panel` | 一张画布 N 个同构面板,**共享数据域**;轴只画外圈,悬停 / 框选 / 缩放按**指针所在面板**解析;`columns: [4, 1]` 的权重即「主图 + 窄条」。不给 `matrix` 时行为逐像素不变 |
123
123
  | 图例 | top / bottom / left / right | **可点击切换系列 / 扇区显隐**并重算数据域 |
124
124
  | 提示框 | axis / item 触发器 | 画在画布内(不依赖 HTML 浮层);箱线图给五数概括、桑基给流量 |
@@ -196,7 +196,7 @@ gray-100~900、`--bs-border-radius`、`--bs-body-font-family`),图表放进
196
196
  | `waterfall` | `data: [{ name, value }]`,合计项标 `total: true` | 增/减/合计三色 + 连接虚线 |
197
197
  | `funnel` | `data: [{ name, value }]` | 阶段梯形、`minSize` 保护最小阶段、图例按阶段显隐 |
198
198
  | `gauge` | `gauge: { min, max, axisLineColor }` + `data: [{ name, value }]` | 指针随数值转动,轴线按阈值分段配色 |
199
- | `sankey` | `sankey: { nodes, links }` | 分层 + 纵向松弛布局,节点/连线分别命中 |
199
+ | `sankey` | `sankey: { nodes, links }` | 分层 + 纵向松弛布局,节点/连线分别命中;**节点可在自己那一列里拖拽重排**(松手把顺序写回 `sankey.nodeOrder`,`sankey.draggable: false` 关掉),想直接定死列序也可以手写 `nodeOrder` |
200
200
  | `treemap` | `data: [{ name, value, children }]` | squarified 布局,父节点留标题带;命中返回最深节点 |
201
201
  | `graph` | `graph: { nodes, links }` | 力导向布局(无底图),节点可拖拽重排;**按关系量定大小**(节点写 `value: 1` 才开这个开关)。标签**自己找位置**:先下方、贴底翻上方、与别的标签相撞就挪到左右侧,最后才选撞得最少的一侧 —— 所以密集图也能给每个节点都标名字(`graph.label.minSize` 可按需只标主要节点),标签也不会被画布裁掉。**配色三个覆盖口**:`categories[].color`(分类色)/ `nodes[].color`(单点)/ `links[].color`(单条线);连线**不写颜色时继承源节点颜色**,多分类图想让它「只表达关系类型」就逐条给 `links[].color` |
202
202
  | `function` | `expression: 'sin(x)/x'`(+ `params` / `domain` / `samples` / `adaptive`) | 迷你 MATLAB:直接写表达式画 `y = f(x)`,按可视区间重采样、y 轴自动贴合;默认**自适应细分**,`adaptive: false` 才是均匀采样 |
@@ -683,10 +683,13 @@ node scripts/audit-space.mjs # 104 张示例图:直角坐标占宽 ≥
683
683
 
684
684
  还没做:
685
685
 
686
- - **增量绘制**:`appendData` 现在每次都全量重建像素缓存(列存 + 环形缓冲是它的落地路径);
687
- 归一化 / 布局 / 组件同步的增量是 `plans/incremental-pipeline.md` 里的 P1~P3,
688
- 验收线「10 万根窗口 ≤ 0.5 ms/tick」仍未达到。
689
- - **桑基节点拖拽重排与折叠**(布局已与渲染解耦,扩展成本低)。
686
+ - **增量绘制**:`appendData` 现在每次都全量重建像素缓存(列存 + 环形缓冲是它的落地路径)。
687
+ ⚠️ 这条**已经结案**,不是「还没排上」:同步流水线只占一帧的 2%~5%,瓶颈在**落墨**
688
+ (10 万点列存折线 33.3 ms/帧,浏览器原生光栅化占 90.4%)—— 归一化 / 布局方向再抠都是
689
+ 0.1 ms 量级。要接着做只剩两条路:用 CDP Tracing 拆光栅分片,或立项**引擎的重绘策略**
690
+ (跨仓,动 ice-render)。结论与数据见 `plans/incremental-pipeline.md` 的「第 8 期」。
691
+ - **桑基节点的折叠**(拖拽重排已落地):桑基是 DAG,多父节点的折叠语义不唯一 ——
692
+ 「折叠一个中间节点后上游下游怎么接」没有唯一答案。要「只看一部分」就在数据侧过滤 `nodes` / `links`。
690
693
  - **标注的第二梯队**:非直角坐标系里的标注(树图 / 日历热力 / 雷达 …)——
691
694
  目前标注只在直角坐标场景生效,其它场景会给出 `annotation:unsupported-scene` 警告并整批跳过;
692
695
  另有趋势线与误差棒(按需)。