配置项如下
var dataAxis = ['空调', '温湿度', '配电', 'UPS', '温湿度', '烟感', '漏水', '空调', '配电', 'UPS', ];
var dataAP = [65, 104, 83, 83, 83, 78, 67, 83, 90, 76];
var yMax = 120;
var dataShadow = [];
for (var i = 0; i < dataAP.length; i++) {
dataShadow.push(yMax);
}
option = {
grid: {
bottom: "30px",
left: '30px',
right: '5%',
top: '5%',
},
xAxis: {
data: dataAxis,
axisLabel: {
interval: 0,
formatter: function(value) {
//debugger
var ret = ""; //拼接加\n返回的类目项
var maxLength = 2; //每项显示文字个数
var valLength = value.length; //X轴类目项的文字个数
var rowN = Math.ceil(valLength / maxLength); //类目项需要换行的行数
if (rowN > 1) //如果类目项的文字大于3,
{
for (var i = 0; i < rowN; i++) {
var temp = ""; //每次截取的字符串
var start = i * maxLength; //开始截取的位置
var end = start + maxLength; //结束截取的位置
//这里也可以加一个是否是最后一行的判断,但是不加也没有影响,那就不加吧
temp = value.substring(start, end) + "\n";
ret += temp; //凭借最终的字符串
}
return ret;
} else {
return value;
}
},
textStyle: {
color: '#4f9ccf'
}
},
axisTick: {
show: false
},
axisLine: {
show: false
},
/*z: 10*/
},
yAxis: {
axisLine: {
show: false
},
axisTick: {
show: false
},
axisLabel: {
textStyle: {
color: '#4f9ccf'
}
},
splitLine: {
show: true,
lineStyle: {
color: ['#013168'],
width: 1,
type: 'solid'
}
}
},
series: [{ // For shadow
type: 'bar',
itemStyle: {
normal: {
color: 'rgba(0,0,0,0.15)'
}
},
barGap: '-100%',
barCategoryGap: '40%',
data: dataShadow,
animation: false
},
{
type: 'bar',
label: {
normal: {
show: true,//是否在柱状顶部显示数值
position: "top",
distance: 12,
formatter: function(params) {
return params.data.value;
},
textStyle: {
color: "#4f9ccf",
fontSize: 12
}
}
},
itemStyle: {
normal: {
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
offset: 0,
color: '#00adff'
}, {
offset: 1,
color: '#047eff'
}]),
},
},
data: dataAP
}
]
};
//使用制定的配置项和数据显示图表
//数据动态展现
setInterval(function() { //数据动态展现
for (var i = 0; i < dataAP.length; i++) {
if (dataAP[i] % 2 == 0) {
dataAP[i] -= Math.round(Math.random() * 10);
} else {
dataAP[i] += Math.round(Math.random() * 20);
}
}
/* var optionAP = {
grid: {
bottom:"30px",
left: '30px',
right: '5%',
top:'5%',
},
xAxis: {
data: dataAxis,
axisLabel: {
interval: 0,
formatter:function(value)
{
//debugger
var ret = "";//拼接加\n返回的类目项
var maxLength = 2;//每项显示文字个数
var valLength = value.length;//X轴类目项的文字个数
var rowN = Math.ceil(valLength / maxLength); //类目项需要换行的行数
if (rowN > 1)//如果类目项的文字大于3,
{
for (var i = 0; i < rowN; i++) {
var temp = "";//每次截取的字符串
var start = i * maxLength;//开始截取的位置
var end = start + maxLength;//结束截取的位置
//这里也可以加一个是否是最后一行的判断,但是不加也没有影响,那就不加吧
temp = value.substring(start, end) + "\n";
ret += temp; //凭借最终的字符串
}
return ret;
}
else {
return value;
}
},
textStyle: {
color: '#4f9ccf'
}
},
axisTick: {
show: false
},
axisLine: {
show: false
},
/!*z: 10*!/
},
yAxis: {
axisLine: {
show: false
},
axisTick: {
show: false
},
axisLabel: {
textStyle: {
color: '#4f9ccf'
}
},
splitLine: {
show: true,
lineStyle:{
color: ['#013168'],
width: 1,
type: 'solid'
}
}
},
series: [
{ // For shadow
type: 'bar',
itemStyle: {
normal: {color: 'rgba(0,0,0,0.15)'}
},
barGap:'-100%',
barCategoryGap:'40%',
data: dataShadow,
animation: false
},
{
type: 'bar',
label: {
normal: {
show: true,
position: "top",
distance:12,
formatter: function(params) {
return params.data.value;
},
textStyle: {
color: "#4f9ccf",
fontSize: 12
}
}
},
itemStyle: {
normal: {
color: function(params) {
var colorList = ['#139dad','#80c269','#f7ac47','#67e0e3','#ffdb5c', '#e062ae','#ff9f7f','#4171fa','#106fcf','#e75d6c',];
return colorList[params.dataIndex]
}
},
},
data: dataAP
}
]
};*/
var Max = Math.max(...dataAP); // 取数组里最大值
var _yMax = Math.ceil(Max / 50); // 若有余数则加1
yMax = _yMax * 50; //生成阴影的值和y轴的最大值相同
dataShadow = []; //清空之前的数据
for (var i = 0; i < dataAP.length; i++) {
dataShadow.push(yMax);
}
// console.log(dataShadow);
myChart.setOption({
series: [{ // For shadow
type: 'bar',
itemStyle: {
normal: {
color: 'rgba(0,0,0,0.15)'
}
},
barGap: '-100%',
barCategoryGap: '40%',
data: dataShadow,
animation: false
},
{
type: 'bar',
label: {
normal: {
show: true,
position: "top",
distance: 12,
formatter: function(params) {
return params.data.value;
},
textStyle: {
color: "#4f9ccf",
fontSize: 12
}
}
},
itemStyle: {
normal: {
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
offset: 0,
color: '#00adff'
}, {
offset: 1,
color: '#047eff'
}]),
},
},
data: dataAP
}
]
});
}, 1000);