其實復用option很簡單,在所要展示的圖形在其他需求大致一致時,即可寫一個option然后設置不同的地方就好了,坐標軸、series等都可以設置,具體代碼如下:
var barLeft = echarts.init(document.getElementById("barLeft"));
var barRight = echarts.init(document.getElementById("barRight"));
var barYear = echarts.init(document.getElementById("barYear"));
var optionBarLeft = {
xAxis: {
type: 'category',
axisLine:{
lineStyle:{
color:'#D5DAE6',
width:1,//這里是為了突出顯示加上的
}
},
axisLabel:{
formatter: function(val) {
var strs = val.split(''); //字符串數組
var str = ''
for (var i = 0, s; s = strs[i++];) { //遍歷字符串數組
str += s;
if (!(i % 3)) str += '\n'; //按需要求余
}
return str
},
textStyle: {
color: "#7A758C" // y軸單位坐標文字顏色
}
},
data: ['日累 耗煤量', '月報 耗煤量', '耗煤量調整']
},
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true
},
yAxis: {
type: 'value',
name: '單位:噸',
nameTextStyle: {
ontSize: '8',
color: "#7A758C" // y軸單位標簽顏色
},
axisLine:{
lineStyle:{
color:'#D5DAE6',
width:1,//這里是為了突出顯示加上的
}
},
},
series: [{
name: '華電蒙能',
type: 'bar',
data: [11200, 10780, 420],
//設置柱子的寬度
barWidth: 30,
//配置樣式
itemStyle: {
//通常情況下:
normal: { //每個柱子的顏色即為colorList數組里的每一項,如果柱子數目多於colorList的長度,則柱子顏色循環使用該數組
color: function(params) {
var colorList = ['#6278FF', '#239FFF', '#AD77FF', '#D36AFF'];
return colorList[params.dataIndex];
},
//以下為是否顯示,顯示位置和顯示格式的設置了
label: {
show: true,
position: 'top',
textStyle: {
color: '#4D4D4D'
}
}
},
},
}],
};
//這一步必須要有,不然會報錯
barLeft.setOption(optionBarLeft);
barRight.setOption(optionBarLeft);
barYear.setOption(optionBarLeft);
//復用時,需要設置修改不同的數據參數
var barRightSeries=[{
name: '華電蒙能',
type: 'bar',
data: [5100, 5300, 200],
//設置柱子的寬度
barWidth: 30,
//配置樣式
itemStyle: {
//通常情況下:
normal: { //每個柱子的顏色即為colorList數組里的每一項,如果柱子數目多於colorList的長度,則柱子顏色循環使用該數組
color: function(params) {
var colorList = ['#6278FF', '#239FFF', '#AD77FF', '#D36AFF'];
return colorList[params.dataIndex];
},
//以下為是否顯示,顯示位置和顯示格式的設置了
label: {
show: true,
position: 'top',
textStyle: {
color: '#4D4D4D'
}
}
},
},
}];
var barRightX={
type: 'category',
axisLabel:{
formatter: function(val) {
var strs = val.split(''); //字符串數組
var str = ''
for (var i = 0, s; s = strs[i++];) { //遍歷字符串數組
str += s;
if (!(i % 3)) str += '\n'; //按需要求余
}
return str
}
},
data: ['日累值', '日累值', '調整量']
}
var barRightY={
type: 'value',
name: '單位:千卡/千克',
}
//復用設置即可
barRight.setOption({
series :barRightSeries
});
barRight.setOption({
xAxis :barRightX
});
barRight.setOption({
yAxis :barRightY
});
下面是我的公眾號,大家可以關注一下,可以一起學習,一起進步:

