最近使用echarts中用到图例随机生成,颜色多不好设置的问题,图例多展示出现不全,不能根据颜色判断图例和数据的问题等总结一下
原始代码:
that_ge.charts = echarts.init(document.getElementById('paramenterEcharts'));that_ge.alarmTypeLine = ['风速1','风速2','风速3','风速4','风速5','风速6','风速7','风速8','风速9','风速10','风速11','风速12','风速13','风速14','风速15',]that_ge.charts.setOption({color: that_ge.randerColor(),tooltip: {trigger: 'axis',show:true, //这些是防止过多看不到,根据自己的需要进行注释就行。showDelay:0,//这些是防止过多看不到,根据自己的需要进行注释就行。hideDelay:50,//这些是防止过多看不到,根据自己的需要进行注释就行。padding:10,//这些是防止过多看不到,根据自己的需要进行注释就行。confine:true,//这些是防止过多看不到,根据自己的需要进行注释就行。formatter:e=>{ // 遍历出图标和颜色、数值var tip = "";if(e !== null && e.length > 0){tip += e[0].name + '<br/>';for(let i=0;i<e.length;i++){if(i % 3 === 0){tip += e[i].marker + e[i].seriesName + ": " + e[i].value + "<br/>";}else{tip += e[i].marker + e[i].seriesName + ": " + e[i].value + " ";}}return tip;}}},grid: {left: '4%',top:'2%',},legend: {left: 'right', // 水平位置,可选值:'left', 'center', 'right'type: 'scroll', // 使用滚动分页的图例right: 100, top: 30, bottom: 20, orient: 'vertical', // 可选值:'horizontal' 或 'vertical' // data:legendData, },xAxis: [{type: 'category',axisTick: {alignWithLabel: true},// data: val.data.xtimes,data: [1,2,3,4,5,6,7,8,9],axisLabel:{color:"#22b8ff",},},],dataZoom: [//X轴鼠标滑动{show: true,realtime: true,start: 0,end: 100},{type: 'inside',realtime: true,start: 0,end: 100}],yAxis: {type: 'value'},series: [{name: '风速1',type: 'line',data: [4,5,6,8,9,4,12,3,12],smooth: true,},{name: '风速2',type: 'line',data: [4,5,6,8,9,4,12,3,12],smooth: true,},{name: '风速3',type: 'line',data: [4,5,6,8,9,4,12,3,12],smooth: true,},{name: '风速4',type: 'line',data: [4,5,6,8,9,4,12,3,12],smooth: true,},{name: '风速5',type: 'line',data: [4,5,6,8,9,4,12,3,12],smooth: true,},{name: '风速6',type: 'line',data: [4,5,6,8,9,4,12,3,12],smooth: true,},{name: '风速7',type: 'line',data: [4,5,6,8,9,4,12,3,12],smooth: true,},{name: '风速8',type: 'line',data: [4,5,6,8,9,4,12,3,12],smooth: true,},{name: '风速9',type: 'line',data: [4,5,6,8,9,4,12,3,12],smooth: true,},{name: '风速10',type: 'line',data: [4,5,6,8,9,4,12,3,12],smooth: true,},{name: '风速11',type: 'line',data: [4,5,6,8,9,4,12,3,12],smooth: true,},{name: '风速12',type: 'line',data: [4,5,6,8,9,4,12,3,12],smooth: true,},{name: '风速13',type: 'line',data: [4,5,6,8,9,4,12,3,12],smooth: true,},{name: '风速14',type: 'line',data: [4,5,6,8,9,4,12,3,12],smooth: true,},{name: '风速15',type: 'line',data: [4,5,6,8,9,4,12,3,12],smooth: true,},{name: '风速16',type: 'line',data: [4,5,6,8,9,4,12,3,12],smooth: true,},{name: '风速17',type: 'line',data: [4,5,6,8,9,4,12,3,12],smooth: true,},{name: '风速18',type: 'line',data: [4,5,6,8,9,4,12,3,12],smooth: true,},{name: '风速19',type: 'line',data: [4,5,6,8,9,4,12,3,12],smooth: true,},{name: '风速20',type: 'line',data: [4,5,6,8,9,4,12,3,12],smooth: true,},{name: '风速21',type: 'line',data: [4,5,6,8,9,4,12,3,12],smooth: true,},{name: '风速22',type: 'line',data: [4,5,6,8,9,4,12,3,12],smooth: true,},{name: '风速23',type: 'line',data: [4,5,6,8,9,4,12,3,12],smooth: true,},{name: '风速24',type: 'line',data: [4,5,6,8,9,4,12,3,12],smooth: true,},{name: '风速25',type: 'line',data: [4,5,6,8,9,4,12,3,12],smooth: true,},{name: '风速26',type: 'line',data: [4,5,6,8,9,4,12,3,12],smooth: true,},{name: '风速27',type: 'line',data: [4,5,6,8,9,4,12,3,12],smooth: true,},{name: '风速28',type: 'line',data: [4,5,6,8,9,4,12,3,12],smooth: true,},{name: '风速29',type: 'line',data: [4,5,6,8,9,4,12,3,12],smooth: true,},{name: '风速30',type: 'line',data: [4,5,6,8,9,4,12,3,12],smooth: true,},{name: '风速31',type: 'line',data: [4,5,6,8,9,4,12,3,12],smooth: true,},{name: '风速32',type: 'line',data: [4,5,6,8,9,4,12,3,12],smooth: true,},{name: '风速33',type: 'line',data: [4,5,6,8,9,4,12,3,12],smooth: true,},{name: '风速34',type: 'line',data: [4,5,6,8,9,4,12,3,12],smooth: true,},{name: '风速35',type: 'line',data: [4,5,6,8,9,4,12,3,12],smooth: true,},{name: '风速36',type: 'line',data: [4,5,6,8,9,4,12,3,12],smooth: true,},{name: '风速37',type: 'line',data: [4,5,6,8,9,4,12,3,12],smooth: true,},{name: '风速38',type: 'line',data: [4,5,6,8,9,4,12,3,12],smooth: true,},{name: '风速39',type: 'line',data: [4,5,6,8,9,4,12,3,12],smooth: true,},{name: '风速40',type: 'line',data: [4,5,6,8,9,4,12,3,12],smooth: true,},]})
这个是在随机生成颜色中要使用的图例内容一定要写上。
这个声明在data(){
return{
alarmTypeLine:'',//echarts图标名称
}
}
随机生成的颜色代码:
randerColor(){ //echarts图颜色let arr = [];this.alarmTypeLine.forEach(item=>{this.random(arr)})return arr;},random(arr){ //echarts图颜色let color = 'rgb(' + [Math.round(Math.random() * 256),Math.round(Math.random() * 256),Math.round(Math.random() * 256)].join(',') + ')';if(!arr.some(i=>i==color)){arr.push(color)}else{this.random(arr)}},