散点图(Scatter)
本章目标:把散点图在 EasyChart 的“数据字段约定”说清楚,尤其是 SeriesData.y/value 的兼容逻辑,以及 z 维度如何驱动 sizeMapping。
1. 适用场景
- 相关性分析(X/Y 两个数值维度)
- 分布展示(点云)
- 异常点识别(离群点)
2. 最小可用配置(Checklist)
ChartProfile.coordinateSystem = Cartesian2D- 轴
- 常见:X=Value,Y=Value
- Series
- 添加 1 条
Serie Serie.type = ScatterSerie.seriesData至少 2 个点
- 添加 1 条
3. Inspector 对应字段
series[i].type = Scatterseries[i].settings:实际类型为ScatterSettingspoint:点样式(显示/大小/纹理)hover:悬停高亮(enabled/pickRadius/scale 等,具体字段以版本为准)sizeMapping:点大小映射
4. SeriesData 字段解释(按运行时代码)
散点图渲染时使用:
- X 坐标:
SeriesData.x - Y 坐标:优先使用
SeriesData.y- 兼容逻辑:如果
y == 0且value != 0,运行时会把value当成 y 来用
- 兼容逻辑:如果
- 点大小映射维度:
SeriesData.z(当sizeMapping.enabled=true时)
因此你有两种常见写法:
4.1 推荐写法(显式 X/Y)
x = X 值y = Y 值
4.2 兼容写法(旧数据:用 value 当 y)
x = X 值value = Y 值y = 0
建议:新数据直接写
y,这样不会跟“点的其他含义(value)”混在一起。
5. 标准模板:Value X + Value Y
- X 轴:
AxisType = Value - Y 轴:
AxisType = Value - 数据:使用 4.1 的写法(x/y)
6. sizeMapping(点大小映射)的真实规则
当 ScatterSettings.sizeMapping.enabled = true 时:
- 点半径会根据
SeriesData.z映射得到 - 映射范围:
minValue/maxValue→minSize/maxSize - 若
clamp = true,会把超范围的 t 值夹到 0..1 curve会对 t 做一次曲线变换(用于非线性映射)
如果你发现 sizeMapping “没效果”,优先检查:
- 是否真的给了
z值(默认 0) minValue/maxValue是否相等(相等会导致映射退化)
7. 常见坑与排错
-
点全在一条水平线
- 你可能只填了
value,但又把y也写成了非 0(兼容逻辑不会触发) - 建议统一用
y作为纵坐标
- 你可能只填了
-
hover 没反应
ScatterSettings.hover.enabled必须开启pickRadius太小也会导致很难拾取
-
点太小/太大
- 调整
ScatterSettings.point.size - 或检查 sizeMapping 的
minSize/maxSize
- 调整
8. 深入参考
- 轴与范围、Series 与数据:
00-WorkflowAndLibrary.md - 常用配方:
05-CommonRecipes.md - FAQ:
06-FAQ.md