LightningChart JS中如何根据点数值动态更改LineSeries/AreaSeries描边颜色
LightningChart JS 动态调整系列描边颜色实现方案
LightningChart JS 完全支持基于数据点的数值动态调整 LineSeries、AreaSeries 的描边颜色,你提到的两个场景都可以通过值调色板(PalettedFill)功能实现,具体实现方式如下:
核心实现逻辑
通过内置的 PalettedFill 搭配颜色查找表(LUT),可以绑定数据点的任意属性(x值、y值或自定义属性)做颜色映射,无需手动分段绘制线条,无额外性能损耗。
示例1:按y值阈值切换描边色(y>10显示红色,其余显示蓝色)
实现代码参考:
// 导入必要的内置类 import { lightningChart, PalettedFill, LUT, ColorRGBA } from '@arction/lcjs' // 1. 创建LUT颜色查找表,绑定y值映射规则 const yValueStrokeLUT = new LUT({ steps: [ { value: 10, color: ColorRGBA(0, 0, 255) }, // y≤10时显示蓝色 { value: 10.001, color: ColorRGBA(255, 0, 0) } // y>10时显示红色 ], interpolate: false, // 关闭颜色渐变插值,保证仅输出两种纯色 lookUpProperty: 'y' // 指定用数据点的y值做映射判断 }) // 2. 生成调色板填充样式 const dynamicStrokeStyle = new PalettedFill({ lut: yValueStrokeLUT }) // 3. 给系列设置描边样式 // LineSeries 配置方式 lineSeries.setStrokeStyle( solidLine => solidLine.setFillStyle(dynamicStrokeStyle) ) // AreaSeries 描边配置方式(和填充样式独立配置) areaSeries.setStrokeStyle( solidLine => solidLine.setFillStyle(dynamicStrokeStyle) )
示例2:按x值区间切换描边色(x∈[1,10]显示黄色)
仅需要修改LUT的映射规则和lookUpProperty属性即可:
const xRangeStrokeLUT = new LUT({ steps: [ { value: 0.999, color: ColorRGBA(0, 0, 255) }, // x<1显示蓝色 { value: 1, color: ColorRGBA(255, 255, 0) }, // 1≤x≤10显示黄色 { value: 10.001, color: ColorRGBA(0, 0, 255) } // x>10切回蓝色 ], interpolate: false, lookUpProperty: 'x' // 指定用数据点的x值做映射判断 }) const xDynamicStroke = new PalettedFill({ lut: xRangeStrokeLUT }) lineSeries.setStrokeStyle(solidLine => solidLine.setFillStyle(xDynamicStroke))
额外说明
- 如果需要更复杂的判断规则(比如同时匹配x、y值的组合条件),可以在添加数据点时给每个点附加自定义属性,再将
lookUpProperty绑定到自定义属性即可实现。 - 颜色规则支持实时修改,调整LUT的steps配置后会自动生效,不需要重新创建或清空图表系列。
内容的提问来源于stack exchange,提问作者Torstein Bjørgan
相关产品推荐
相关产品推荐

