配置项如下
let color = ['#8B5CFF', '#00CA69'];
let xAxisData = ['1', '2', '3', '4', '5', '6', '7', '8'];
let yAxisData1 = [100, 138, 350, 173, 180, 150, 180, 230];
let yAxisData2 = [233, 233, 200, 180, 199, 233, 210, 180];
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;
};
option = {
backgroundColor: '#fff',
color: color,
legend: {
top: 20,
},
tooltip: {
trigger: 'axis',
formatter: function (params) {
let html = '';
params.forEach((v) => {
html += `<div style="color: #666;font-size: 14px;line-height: 24px">
<span style="display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:${
color[v.componentIndex]
};"></span>
${v.seriesName}2020.${v.name}
<span style="color:${color[v.componentIndex]};font-weight:700;font-size: 18px;margin-left:5px">${
v.value
}</span>
万元`;
});
return html;
},
extraCssText: 'background: #fff; border-radius: 0;box-shadow: 0 0 3px rgba(0, 0, 0, 0.2);color: #333;',
axisPointer: {
type: 'shadow',
shadowStyle: {
color: '#ffffff',
shadowColor: 'rgba(225,225,225,1)',
shadowBlur: 5,
},
},
},
grid: {
top: 100,
containLabel: true,
},
xAxis: [
{
type: 'category',
boundaryGap: false,
axisLabel: {
formatter: '2020-{value}',
textStyle: {
color: '#333',
},
},
axisLine: {
lineStyle: {
color: '#D9D9D9',
},
},
data: xAxisData,
},
],
yAxis: [
{
type: 'value',
name: '单位(万/亿KWh)',
axisLabel: {
textStyle: {
color: '#666',
},
},
nameTextStyle: {
color: '#666',
fontSize: 12,
lineHeight: 40,
},
// 分割线
splitLine: {
lineStyle: {
type: 'dashed',
color: '#E9E9E9',
},
},
axisLine: {
show: false,
},
axisTick: {
show: false,
},
},
],
series: [
{
// name: "2018",
name: '预测出电量',
type: 'line',
smooth: true,
symbolSize: 8,
zlevel: 3,
lineStyle: {
normal: {
color: color[0],
shadowBlur: 3,
shadowColor: hexToRgba(color[0], 0.5),
shadowOffsetY: 8,
},
},
// markPoint: {
// symbol: 'pin', //标记(气泡)的图形
// symbolSize: 50, //标记(气泡)的大小
// itemStyle: {
// // color: '#4587E7', //图形的颜色。
// borderColor: '#000', //图形的描边颜色。支持的颜色格式同 color,不支持回调函数。
// borderWidth: 0, //描边线宽。为 0 时无描边。
// borderType: 'solid', //柱条的描边类型,默认为实线,支持 ‘solid’, ‘dashed’, ‘dotted’。
// },
// data: [
// { type: 'max', name: '最大值' },
// { type: 'min', name: '最小值' },
// ],
// },
// markLine: {
// data: [{ type: 'average', name: '平均值' }],
// },
//设置最大值最小值
markPoint: {
data: [
{
type: 'max',
name: '最大值',
},
{
type: 'min',
name: '最小值',
},
],
},
symbol: 'circle', //数据交叉点样式
areaStyle: {
normal: {
color: new echarts.graphic.LinearGradient(
0,
0,
0,
1,
[
{
offset: 0,
color: hexToRgba(color[0], 0.3),
},
{
offset: 1,
color: hexToRgba(color[0], 0.1),
},
],
false
),
shadowColor: hexToRgba(color[0], 0.1),
shadowBlur: 10,
},
},
data: yAxisData1,
},
{
name: '实际用电量',
type: 'line',
smooth: true,
symbolSize: 8,
zlevel: 3,
lineStyle: {
normal: {
color: color[1],
shadowBlur: 3,
shadowColor: hexToRgba(color[1], 0.5),
shadowOffsetY: 8,
},
},
//设置最大值最小值
markPoint: {
data: [
{
type: 'max',
name: '最大值',
},
{
type: 'min',
name: '最小值',
},
],
},
symbol: 'circle', //数据交叉点样式 (实心点)
areaStyle: {
normal: {
color: new echarts.graphic.LinearGradient(
0,
0,
0,
1,
[
{
offset: 0,
color: hexToRgba(color[1], 0.3),
},
{
offset: 1,
color: hexToRgba(color[1], 0.1),
},
],
false
),
shadowColor: hexToRgba(color[1], 0.1),
shadowBlur: 10,
},
},
data: yAxisData2,
},
],
};