如何从scatter series点数据中获取自定义值及动态修改点形状?
问题1:提取散点数据中自定义的
value字段 series.add方法默认不会把你传入的自定义字段传递到setCursorResultTableFormatter的回调参数中,你可以通过外部维护映射表的方式实现自定义值的存储和读取,实现步骤如下:
- 提前定义映射表存储每个点对应的自定义值,添加数据时同步写入映射:
// 用x值作为key(如果存在x值重复的场景,可以用`${x}-${y}`的组合字符串作为key) const customValueMap = new Map() series.add({ x: 0, y: 22, color: ColorRGBA(255, 0, 0), size: 10, rotation: 45, value: "custom message", }) // 同步存入映射表 customValueMap.set(0, "custom message")
- 在光标表格格式化回调中从映射表读取对应值即可:
series.setCursorResultTableFormatter((builder, series, xValue, yValue) => { const customMsg = customValueMap.get(xValue) return builder.addRow(customMsg) })
问题2:动态修改散点的点形状
可以实现,和动态修改color、size的逻辑一致,你可以修改单个点的形状,也可以批量修改整个系列所有点的形状,示例代码如下:
// 修改单个点的形状 const singlePoint = series.add({...}) singlePoint.setPointStyle(style => style.setShape(PointShape.Triangle)) // 修改整个系列所有点的形状 series.setPointStyle(style => style.setShape(PointShape.Square))
内置可选的点形状包括圆形、三角形、正方形、十字等,部分版本也支持传入自定义SVG路径作为点形状。
内容的提问来源于stack exchange,提问作者Gracie williams
相关产品推荐
相关产品推荐

