var lineData = ['2016', '2017', '2018'];
var datas = [
[{
"name": "杭州",
"value": 48877
}, {
"name": "北京",
"value": 39851
}, {
"name": "上海",
"value": 36854
}, {
"name": "郑州",
"value": 26584
}, {
"name": "重庆",
"value": 15842
}, {
"name": "成都",
"value": 14785
}, {
"name": "武汉",
"value": 36954
}, {
"name": "苏州",
"value": 25689
}, {
"name": "福州",
"value": 15847
}, {
"name": "宁波",
"value": 12569
}, {
"name": "东莞",
"value": 8652
}, {
"name": "南京",
"value": 7854
}, {
"name": "西安",
"value": 4778
}, {
"name": "呼和浩特市",
"value": 3658
}, {
"name": "天津",
"value": 1564
}],
[{
"name": "杭州",
"value": 58877
}, {
"name": "北京",
"value": 53684
}, {
"name": "上海",
"value": 48756
}, {
"name": "郑州",
"value": 36589
}, {
"name": "重庆",
"value": 36582
}, {
"name": "成都",
"value": 25874
}, {
"name": "武汉",
"value": 39584
}, {
"name": "苏州",
"value": 35698
}, {
"name": "福州",
"value": 17596
}, {
"name": "宁波",
"value": 23658
}, {
"name": "东莞",
"value": 15371
}, {
"name": "南京",
"value": 15475
}, {
"name": "西安",
"value": 9658
}, {
"name": "呼和浩特市",
"value": 15658
}, {
"name": "天津",
"value": 8521
}],
[{
"name": "杭州",
"value": 68877
}, {
"name": "北京",
"value": 62481
}, {
"name": "上海",
"value": 56982
}, {
"name": "郑州",
"value": 48751
}, {
"name": "重庆",
"value": 58652
}, {
"name": "成都",
"value": 69854
}, {
"name": "武汉",
"value": 52483
}, {
"name": "苏州",
"value": 59827
}, {
"name": "福州",
"value": 38519
}, {
"name": "宁波",
"value": 36344
}, {
"name": "东莞",
"value": 18495
}, {
"name": "南京",
"value": 32531
}, {
"name": "西安",
"value": 13069
}, {
"name": "呼和浩特市",
"value": 25544
}, {
"name": "天津",
"value": 12005
}]
]
color = ['#00CC98', '#65FE66'];
option = {
baseOption: {
timeline: {
data: lineData,
axisType: 'category',
autoPlay: true,
playInterval: 5000, //播放速度
left: '5%',
right: '5%',
bottom: '0%',
width: '90%',
// height: null,
label: {
normal: {
textStyle: {
color: '#FFFFFF',
}
},
emphasis: {
textStyle: {
color: '#63FD68'
}
}
},
symbolSize: 10,
lineStyle: {
color: '#2C7439'
},
checkpointStyle: {
color: '#63FD68',
symbolSize: 15,
borderColor: "rgb(107,110,116,0.8)",
borderWidth: 3.5
},
controlStyle: {
showNextBtn: true,
showPrevBtn: true,
normal: {
color: '#aaaaaa',
borderColor: '#aaaaaa'
},
emphasis: {
color: '#63FD68',
borderColor: '#63FD68'
}
},
emphasis: {
itemStyle: {
color: "63FD68"
}
}
},
title: {
text: '',
right: '2%',
bottom: '8%',
textStyle: {
fontSize: 50,
color: '#aaaaaa' //标题字体颜色
}
},
tooltip: {
show: true,
},
calculable: true,
grid: {
left: '10%',
right: '5%',
bottom: '6%',
top: '4%',
containLabel: true
},
label: {
normal: {
textStyle: {
color: '#63FD68'
}
}
},
xAxis: [{
show: true,
position: 'top',
axisLine: {
show: false
},
splitLine: {
show: false
},
axisTick: {
show: false
},
}],
yAxis: [{
show: true,
'type': 'category',
// inverse: true,
data: '',
axisLine: {
show: false
},
splitLine: {
show: false
},
axisTick: {
show: false
},
axisLabel: {
show: false,
}
}],
series: [{
'name': '',
'type': 'bar',
showBackground: true,
backgroundStyle: {
barBorderRadius: 30,
},
markLine: {
show: false,
},
barWidth: 15,
label: {
normal: {
show: true,
fontSize: 16, //标签国家字体大小
position: 'left', //数值显示在右侧
formatter: function(p) {
var val = "";
if (p.name.length > 4) {
val = p.name.substr(0, 4) + '...';
return val;
} else {
return p.name;
}
}
}
},
itemStyle: {
normal: {
show: true,
// 线性渐变,前四个参数分别是 x0, y0, x2, y2, 范围从 0 - 1,分别表示右,下,左,上。例如(0,0,0,1)表示从正上开始向下渐变;如果是(1,0,0,0),则是从正右开始向左渐变。
// 相当于在图形包围盒中的百分比,如果最后一个参数传 true,则该四个值是绝对的像素位置
color: new echarts.graphic.LinearGradient(0, 0, 1, 0, [{
offset: 0,
color: color[0] //指0%处的颜色
}, {
offset: 1,
color: color[1] //指100%处的颜色
}], false),
barBorderRadius: 30,
},
emphasis: {
color: new echarts.graphic.LinearGradient(
0, 0, 1, 0,
[{
offset: 0,
color: '#CE8A00'
},
{
offset: 1,
color: '#EEBA00'
}
]
)
}
},
}],
animationEasingUpdate: 'quinticInOut',
animationDurationUpdate: 1500, //动画效果
},
options: []
};
for (var n = 0; n < lineData.length; n++) {
var res = datas[n];
// console.log(res);
res.sort(function(a, b) {
return a.value - b.value;
});
var res1 = [];
var res2 = [];
//console.log(res);
for (t = 0; t < res.length; t++) {
res1[t] = res[t].name;
res2[t] = res[t].value;
}
option.options.push({
title: {
text: lineData[n] + '年'
},
yAxis: {
data: res1,
},
series: [{
data: res2
}]
});
}