拼ui 一些业务逻辑x实现

This commit is contained in:
2026-03-19 06:15:09 +08:00
parent f5c6f143c0
commit 49e45ac464
1118 changed files with 246518 additions and 5368 deletions
@@ -0,0 +1,173 @@
# FAQ(常见问题与最快排错路线)
本章目标:当你遇到“看不到/显示不对/交互怪”等问题时,能用最短路径定位原因。
---
## 0. 最快排错路线(30 秒版)
按顺序检查,通常能解决 80% 的问题:
1. **坐标系是否匹配 SeriesType**
- Cartesian2DLine/Bar/Scatter/Heatmap
- Polar2DRadar
2. **是否真的有数据**
- `series.Count > 0`
- 该 Serie `seriesData.Count > 0`
3. **轴类型是否匹配数据含义**
- Category 轴:`labels` 非空;数据点 `x/y` 使用索引(0/1/2...
- Value 轴:`x/y` 为连续数值
4. **是否存在 NaN / Infinity**
5. **Value 轴范围是否把数据排除在外**
- 检查是否固定了 min/max
- 检查 `autoRangeMin/autoRangeMax` 是否关闭
---
## 1. 我点了预览但什么都没有
### 可能原因
- `seriesData` 为空
- `Serie.visible = false`
- 坐标系与 SerieType 不匹配(例如 Radar 放在 Cartesian2D
- 轴范围不包含数据(常见于 Value 轴被手动锁死)
### 你应该怎么做
1. 在 Inspector 找到 `series` -> 展开某个 Serie
2. 检查:
- `visible` 是否为 true
- `seriesData` 是否有元素
3. 检查坐标系:
- Radar -> `coordinateSystem = Polar2D`
- Line/Bar/Scatter/Heatmap -> `coordinateSystem = Cartesian2D`
4. 如果是 Value 轴:
- 先把范围相关的“固定 min/max”关闭
-`autoRangeMin/autoRangeMax` 都开,确认能显示后再逐步锁定
---
## 2. Category 轴有 labels,但点/柱子不在标签上
### 典型现象
- 柱子落在两个标签中间
- 折线的点对不上 A/B/C
### 快速结论
- Category 轴下,`x`(或 `y`)通常应该是 **类目索引**(0/1/2/...),而不是“随便的数值”。
### 你应该怎么做
- 检查数据点:
- `labels[0]` 对应 `x=0`
- `labels[1]` 对应 `x=1`
- 如果你做的是柱状图:
-`LabelPlacement` 调成 `CellCenter`
---
## 3. Value 轴范围很怪(特别大/特别小)
### 可能原因
- Value 轴被锁死范围(min/max
- 只锁了一端但另一端的数据非常极端
- rounding/unit 把范围吸附到不合适的单位
### 你应该怎么做
1. 先把范围回退到“全自动”,确认能显示
2. 再逐步加入你的业务约束:
- 柱状图常用:`minValue=0` + `autoRangeMax=true`
3. 如果你看到很多奇怪的小数刻度:
- 优先设置 `labelFormat`
---
## 4. 线条断断续续/整体不渲染
### 最常见原因
- 数据中存在 NaN / Infinity
### 你应该怎么做
- 在数据源侧过滤:
- `float.IsNaN(x/y/z)`
- `float.IsInfinity(x/y/z)`
---
## 5. 柱状图和标签就是对不齐
### 快速结论
- 99% 是 `LabelPlacement` 没配对
### 你应该怎么做
- Bar:优先 `LabelPlacement = CellCenter`
- Line/Scatter:优先 `LabelPlacement = Tick`
---
## 6. Heatmap 全部一个颜色 / 看起来没有层次
### 可能原因
- `autoRange=false``minValue/maxValue` 设置不合理
- `clamp=false` + 极端值导致颜色被拉爆
- 数据点 `value` 全部相同(或全是 0
### 你应该怎么做
1. 开启 `autoRange`
2. 检查数据点 `value` 是否有变化
3. 如果你需要固定范围:
- 合理设置 `minValue/maxValue`
---
## 7. Radar 标签缺失/混乱
### 常见原因
- 维度标签来源不统一
### 推荐做法
- 每个 Radar 点:
- `x = 维度索引`
- `value = 数值`
- `name = 维度名`
并确保 Radar 不依赖 Cartesian 的轴配置来取标签。
---
## 8. tooltip/hover/选中“指错点”或状态不稳定
### 常见原因
- 每次刷新数据都产生新的点标识
### 你应该怎么做
- 保证每个点的 `SeriesData.id` 稳定
- 避免每次刷新都清空再 `Guid.NewGuid()` 生成一套全新的点
---
## 9. 我不知道应该看哪一章
- 你在“创建/克隆/预览/导出”的流程阶段:看 `02-EditorWorkflow.md`
- 你在“轴/范围/对齐/单位/格式”:看 `00-WorkflowAndLibrary.md` 的第 7 节
- 你在“某种图的 data 写法/SeriesData.x/y/z”:看 `00-WorkflowAndLibrary.md` 的第 8 节
- 你只想直接照抄模板:看 `05-CommonRecipes.md`