You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 22:45:04