在最新的echarts中color不支持回调函数,因此我们无法通过回调函数来设置颜色,而默认将会从系列分配调色盘分配颜色,同一系列中的所有数据都是用相同的颜色;我们查看文档发现:
调色盘颜色列表。如果系列没有设置颜色,则会依次循环从该列表中取颜色作为系列颜色。 默认为:
['#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de', '#3ba272', '#fc8452', '#9a60b4', '#ea7ccc']
支持的颜色格式:
(1)使用 RGB 表示纯颜色,比如 ‘rgb(128, 128, 128)’,如果想要加上 alpha 通道表示不透明度,可以使用 RGBA,比如 ‘rgba(128, 128, 128, 0.5)’,也可以使用十六进制格式,比如 ‘#ccc’。
(2)渐变色或者纹理填充
// 线性渐变,前四个参数分别是 x0, y0, x2, y2, 范围从 0 - 1,相当于在图形包围盒中的百分比,如果 globalCoord 为 `true`,则该四个值是绝对的像素位置
{
type: 'linear',
x: 0,
y: 0,
x2: 0,
y2: 1,
colorStops: [{
offset: 0, color: 'red' // 0% 处的颜色
}, {
offset: 1, color: 'blue' // 100% 处的颜色
}],
global: false // 缺省为 false
}
// 径向渐变,前三个参数分别是圆心 x, y 和半径,取值同线性渐变
{
type: 'radial',
x: 0.5,
y: 0.5,
r: 0.5,
colorStops: [{
offset: 0, color: 'red' // 0% 处的颜色
}, {
offset: 1, color: 'blue' // 100% 处的颜色
}],
global: false // 缺省为 false
}
// 纹理填充
{
image: imageDom, // 支持为 HTMLImageElement, HTMLCanvasElement,不支持路径字符串
repeat: 'repeat' // 是否平铺,可以是 'repeat-x', 'repeat-y', 'no-repeat'
}
这时我们要设置颜色,需要指定:
colorBy:'index',
// // color:'red',
color:color1,
其中colorBy控制颜色从哪里获取,默认从series调色盘获取,当我们指定路径后,我们可以自己设置颜色,其中color1为颜色数组:
var color = ['#5470c6', '#91cc75', '#fac858']; //给每一个盒子配颜色
var color1 = [];
for(var i = 0;i<dataShow.length;i++){
color1.push('#5470c6');
}
for(var j = 0;j<flagdata.length;j++){ //选定的盒子标记为红色
color1[flagdata[j]] = '#AE0000';
}
存储我们图形个数对应的颜色,在color:color1中使用,就可:
在对应位置改变echarts盒子颜色,其图形如柱状图、散点图类似。
注意:在series中设置改变盒子颜色(边线),如上图,而在itemStyle中设置,会将盒子填充颜色: