效果图
完整配置
data(){
return{
chart1:null,
chartType1:'1',
data:{
years:{
date:['2015','2016','2017','2018','2019','2020','2021','2022','2023'],
business:[10,23,26,33,43,58,50,45,66],
profit:[3,4,6,7,8,5,7,8,12],
proportion:[12,8,15,20,12,16,13,15,9]
},
months:{
date:['1月', '2月','3月', '4月','5月', '6月','7月', '8月','9月', '10月','11月', '12月'],
business:[10,23,26,10,23,26,33,43,58,50,45,66],
profit:[7,8,5,3,4,6,7,8,5,7,8,12],
proportion:[12,16,13,12,8,15,20,12,16,13,15,9]
}
},
}
},
methods:{
initChart1(){
if (!this.chart1) {
this.chart1 = echarts.init(document.getElementById('chart1'));
}
let data = this.chartType1==='1'?this.data.months:this.data.years
let xData = data.date
let data1 = data.business
let data2 = data.profit
let data3 = data.proportion
let option = {
color:['#00FF00'],
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'cross',
crossStyle: {
color: '#999'
}
}
},
grid: {
top: '60',
left: '100',
right: '12',
bottom: '90',
containLabel: true
},
legend: [
{
textStyle: { color: '#fff' },
data: ['营业收入(亿元)', '净利润(亿元)', '权益净利润率(百分比)']
},
{
align: 'right',
itemGap: 20,
orient: 'vertical',
textStyle: { color: '#fff' },
bottom: 8,
left: 0,
data: ['营业收入(亿元)', '净利润(亿元)', '权益净利润率(百分比)']
}
],
xAxis: [
{
type: 'category',
data: xData,
axisPointer: {
type: 'shadow'
},
axisTick: {
show: false
},
axisLine: {
show: true,
lineStyle: {
color: '#93ECFE',
opacity: 0.5
}
},
axisLabel: {
color: '#fff'
},
axisLabel: {
interval: 0,
rotate: 0,
formatter(value, index) {
return `{table|${
value.substring(0, 4) + '\n' + value.substring(4, value.length)
}}\n{table|${data1[index]}亿元}\n{table|${data2[index]}亿元}\n{table|${
data3[index]
}%}`;
},
rich: {
table: {
lineHeight: 35,
align: 'center',
color: '#fff'
}
}
}
}
],
yAxis: [
{
type: 'value',
name: '营业/利润',
interval: 50,
nameTextStyle: {
color: '#fff'
},
axisLabel: {
color: '#fff',
formatter: '{value} 亿元'
},
splitLine: {
show: true,
lineStyle: {
color: '#93ECFE',
opacity: 0.3
}
}
},
{
type: 'value',
name: '利润率',
min: 0,
interval: 5,
nameTextStyle: {
color: '#fff'
},
axisLabel: {
color: '#fff',
formatter: '{value} %'
},
splitLine: {
show: true,
lineStyle: {
color: '#93ECFE',
opacity: 0.3
}
}
}
],
series: [
{
name: '营业收入(亿元)',
type: 'bar',
tooltip: {
valueFormatter: function (value) {
return value + ' 亿元';
}
},
data: data1,
barWidth:20,
itemStyle: {
normal: {
barBorderRadius: [10, 10, 10, 10],
color:function(params){
return new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
offset: 0, color: '#1E90FF'
}, {
offset: 1, color: 'rgba(30, 144, 255,.5)'
}]
)
}
}
},
},
{
name: '净利润(亿元)',
type: 'bar',
tooltip: {
valueFormatter: function (value) {
return value + ' 亿元';
}
},
data: data2,
barWidth:20,
itemStyle: {
normal: {
barBorderRadius: [10, 10, 10, 10],
color:function(params){
return new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
offset: 0, color: '#FF0000'
}, {
offset: 1, color: 'rgba(255,0,0,.5)'
}]
)
}
}
},
},
{
name: '权益净利润率(百分比)',
type: 'line',
yAxisIndex: 1,
smooth: true,
tooltip: {
valueFormatter: function (value) {
return value + ' %';
}
},
data: data3,
}
]
};
this.chart1.setOption(option)
},
}