echarts 散点图分段式渐变色(分段型视觉映射组件)

发布时间 2023-07-07 14:10:52作者: Cxymds

echarts 分段型视觉映射组件,有三种模式:
连续型数据平均分段: 依据 visualMap-piecewise.splitNumber 来自动平均分割成若干块。
连续型数据自定义分段: 依据 visualMap-piecewise.pieces 来定义每块范围。
离散数据根据类别分段: 类别定义在 visualMap-piecewise.categories 中。

连续型数据平均分段

对于连续型数据,自动平均切分成几段。默认为5段。 连续数据的范围需要 max 和 min 来指定。

 visualMap: {
      type: 'piecewise',
      min: 0,
      max: 900,
      calculable: true,
      splitNumber = 5
}

连续型数据自定义分段

自定义『分段式视觉映射组件(visualMapPiecewise)』的每一段的范围,以及每一段的文字,以及每一段的特别的样式。例如:

pieces: [
    {min: 1500}, // 不指定 max,表示 max 为无限大(Infinity)。
    {min: 900, max: 1500},
    {min: 310, max: 1000},
    {min: 200, max: 300},
    {min: 10, max: 200, label: '10 到 200(自定义label)'},
    {value: 123, label: '123(自定义特殊颜色)', color: 'grey'}, // 表示 value 等于 123 的情况。
    {max: 5}     // 不指定 min,表示 min 为无限大(-Infinity)。
]

或者,更精确得,可以使用 lt(小于,less than),gt(大于,greater than),lte(小于等于 less than or equals),gte(大于等于,greater than or equals)来表达边界:

pieces: [
    {gt: 1500},            // (1500, Infinity]
    {gt: 900, lte: 1500},  // (900, 1500]
    {gt: 310, lte: 1000},  // (310, 1000]
    {gt: 200, lte: 300},   // (200, 300]
    {gt: 10, lte: 200, label: '10 到 200(自定义label)'},       // (10, 200]
    {value: 123, label: '123(自定义特殊颜色)', color: 'grey'},  // [123, 123]
    {lt: 5}                 // (-Infinity, 5)
]

例如:

 visualMap: {
      type: 'piecewise',
      min: 0,
      max: 900,
      calculable: true,
      dimension: 2, // 维度 默认最后
      seriesIndex: 0, // 取数据得哪一个系列
      left: 'right',
      top: 'top',
      itemWidth: 18,
      textStyle: {
        color: '#3259B8',
        height: 56,
        fontSize: 11,
        lineHeight: 60
      },
      inRange: {
        color: ['#1890ff', '#dcb727', '#2fc25b', '#eb7a1e', '#5558f1', '#24b0e8']
      },
      pieces: [
        { value: 0 }, // (1500, Infinity]
        { gt: 0, lte: 250 }, // (900, 1500]
        { gt: 250, lte: 350 }, // (310, 1000]
        { gt: 350, lte: 450 }, // (200, 300]
        { gt: 450, lt: 800 }, // (10, 200]
        { gte: 800 }
      ],
      orient: 'horizontal'
    }

效果:

离散数据根据类别分段

当所指定的维度(visualMap-piecewise.dimension)的数据为离散型数据时,例如数据值为『优』、『良』等,那么可如下配置:

categories: ['严重污染', '重度污染', '中度污染', '轻度污染', '良', '优'],

顺序的话参考:
当inverse为false时,数据大小的位置规则,和直角坐标系相同,即:

当 visualMap.orient 为'vertical'时,数据上大下小。
当 visualMap.orient 为'horizontal'时,数据右大左小。
当inverse为true时,相反。