let color = [ "#E82541", ]; let xAxisData = ["1.10", "1.11", "1.12", "1.13", "1.14", "1.15", "1.16", "1.17"]; let yAxisData1 = [100, 138, 150, 173, 180, 150, 180, 230]; const hexToRgba = (hex, opacity) => { let rgbaColor = ""; let reg = /^#[\da-f]{6}$/i; if (reg.test(hex)) { rgbaColor = `rgba(${parseInt("0x" + hex.slice(1, 3))},${parseInt( "0x" + hex.slice(3, 5) )},${parseInt("0x" + hex.slice(5, 7))},${opacity})`; } return rgbaColor; } var data = [ ['1.10', 100], ['1.11', 138], ['1.12', 150], ['1.13', 173], ['1.14', 180], ['1.15', 150], ['1.16', 180], ['1.17', 230], ]; let type = [] //1蓝色拐点,0红色拐点 let symbolArr = []; var dataa = []; for (var i = 0; i < data.length; i++) { dataa.push(data[i][1]) type.push(data[i][1]) } type.forEach(function (v, i) { symbolArr[i] = { value: dataa[i], symbolSize: v == 230 ? 13 : 0, itemStyle: { normal: { color: v == 230 ? '#E82541' : '#1572E9', shadowBlur: 70, shadowColor: '#333' } } }; }); var sum = 0; data.push(['', avg]) var avg = sum / data.length; option = { color: color, grid: { top: 50, left: 20, right: 20, bottom: 40, }, xAxis: [{ type: "category", boundaryGap: false, axisLabel: { formatter: '{value}', textStyle: { color: "rgba(255, 255, 255, 0.6)" } }, axisLine: { lineStyle: { color: "#D9D9D9" } }, axisTick: { show: false }, data: xAxisData, }], yAxis: [ { type: "value", axisLabel: { show: false, textStyle: { color: "#666" } }, nameTextStyle: { color: "#666", fontSize: 12, lineHeight: 40 }, // 分割线 splitLine: { lineStyle: { type: "solid", color: "rgba(29, 34, 54, 1.00)" } }, axisLine: { show: false }, axisTick: { show: false } }, { type: 'value', show: false, axisTick: { show: false, }, splitLine: { show: false, } } ], series: [ { name: "超标数", type: "line", symbolSize: 8, zlevel: 3, label: { normal: { show: true, position: "top", color: '#fff' } }, symbol: 'circle', areaStyle: { normal: { color: new echarts.graphic.LinearGradient( 0, 0, 0, 1, [{ offset: 0, color: hexToRgba(color[0], 0.8) }, { offset: 1, color: hexToRgba(color[0], 0.1) } ], false ), shadowColor: hexToRgba(color[0], 0.1), shadowBlur: 10 } }, data: yAxisData1, animationEasingUpdate: 'linear', animationDurationUpdate: 1500, }, { label: { show: false, }, type: 'effectScatter', coordinateSystem: 'cartesian2d', data: symbolArr, yAxisIndex: 1, symbolSize: 0, showEffectOn: 'render', rippleEffect: { brushType: 'stroke' }, hoverAnimation: true } ], };