echarts折线图各段设置不同颜色
可以通过设置 visualMap 属性,来控制不同线段的颜色;
文档连接: /zh/option.html#visualMap;
下面我们选择分段型讲述:
1、设置 visualMap 属性:
type: ‘piecewise’,
2、设置 是否显示 visualMap-continuous 组件。如果设置为 false,不会显示,但是数据映射的功能还存在。
show: ‘false’,
3、设置 指定用数据的『哪个维度』,映射到视觉元素上;『数据』即 series.data。 可以把 series.data 理解成一个二维数组;
dimension: 0,
参考文档: /zh/option.html#visualMap-piecewise.dimension
4、指定取哪个系列的数据,即哪个系列的 series.data。默认取所有系列。
seriesIndex:0,
如果 series.data 有多个数据;即多条折线,可根据索引值来指定;
参考文档:/zh/option.html#visualMap-piecewise.seriesIndex
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)。]//方式二: pieces: [{lte: 6,color: 'orange'}, {gt: 6,lte: 8,color: 'red'}]}]
具体设置,参照文档,两种方式设置;此处不在叙述;
/zh/option.html#visualMap-piecewise.pieces
下面举了一个例子,可直接将此 option 放入 echarts 实例演示中查看:
let option = {title: {text: '一天用电量分布',subtext: '纯属虚构'},tooltip: {trigger: 'axis',axisPointer: {type: 'cross'}},toolbox: {show: true,feature: {saveAsImage: {}}},xAxis: {type: 'category',boundaryGap: false,data: ['00:00', '01:15', '02:30', '03:45', '05:00', '06:15', '07:30', '08:45', '10:00', '11:15', '12:30', '13:45', '15:00', '16:15', '17:30', '18:45', '20:00', '21:15', '22:30', '23:45']},yAxis: {type: 'value',axisLabel: {formatter: '{value} W'},axisPointer: {snap: true}},visualMap: [{type: 'piecewise',show: false, dimension: 0, seriesIndex:0, //第一部分数据 pieces: [{lte: 6,color: 'orange'}, {gt: 6,lte: 8,color: 'red'}, {gt: 8,lte: 14,color: 'purple'}, {gt: 14,lte: 17,color: 'Chocolate'}, {gt: 17,color: 'pink'}]},{show: false, type: 'piecewise',dimension: 0,seriesIndex:1,//第二部分数据pieces: [{lte: 3,color: 'blue'}, {gt: 3,lte: 8,color: 'black'}, {gt: 8,lte: 14,color: 'green'}, {gt: 14,lte: 17,color: 'grey'}, {gt: 17,color: 'DodgerBlue'}]}],series: [//第一部分数据{ name: '用电量',type: 'line',smooth: true,data: [300, 280, 250, 260, 270, 300, 550, 500, 400, 390, 380, 390, 400, 500, 600, 750, 800, 700, 600, 400]},//第二部分数据{name: '费用',type: 'line',smooth: true,data: [200, 180, 150, 160, 170, 200, 450, 400, 300, 290, 280, 290, 300, 400, 400, 650, 700, 600, 450, 300]}]};
例子参考来源: 查看例子参考来源