var data = [{
"time": 2020,
"data": [{
"name": "美国",
"value": [1025000, 31.222, "美国"]
},
{
"name": "俄国",
"value": [433412, 13.202, "俄国"]
},
{
"name": "Japan",
"value": [209071, 6.369, "日本"]
},
{
"name": "Germany",
"value": [208867, 6.362, "德国"]
},
{
"name": "France",
"value": [146982, 4.477, "法国"]
},
{
"name": "United Kingdom",
"value": [124970, 3.807, "英国"]
},
{
"name": "Italy",
"value": [109260, 3.328, "意大利"]
},
{
"name": "China",
"value": [91506, 2.787, "中国"]
},
{
"name": "Canada",
"value": [86303, 2.629, "加拿大"]
},
{
"name": "India",
"value": [61470, 1.873, "印度"]
}
]
},
{
"time": 2019,
"data": [{
"name": "United States of America",
"value": [2768900, 23.337, "美国"]
},
{
"name": "Japan",
"value": [1086988, 9.027, "日本"]
},
{
"name": "Russia",
"value": [940038, 7.923, "俄国"]
},
{
"name": "Germany",
"value": [919651, 6.253, "德国"]
},
{
"name": "France",
"value": [691157, 5.825, "法国"]
},
{
"name": "United Kingdom",
"value": [541917, 4.567, "英国"]
},
{
"name": "Italy",
"value": [459811, 3.875, "意大利"]
},
{
"name": "China",
"value": [306520, 2.583, "中国"]
},
{
"name": "Canada",
"value": [268889, 2.266, "加拿大"]
},
{
"name": "Mexico",
"value": [227664, 1.919, "墨西哥"]
}
]
},
{
"time": 2018,
"data": [{
"name": "United States of America",
"value": [5754800, 25.921, "美国"]
},
{
"name": "Japan",
"value": [3103698, 13.774, "日本"]
},
{
"name": "Germany",
"value": [1714447, 7.722, "德国"]
},
{
"name": "France",
"value": [1244419, 5.605, "法国"]
},
{
"name": "Italy",
"value": [1133465, 5.105, "意大利"]
},
{
"name": "United Kingdom",
"value": [1012617, 4.561, "英国"]
},
{
"name": "Russia",
"value": [775810, 3.501, "俄国"]
},
{
"name": "Canada",
"value": [582735, 2.625, "加拿大"]
},
{
"name": "Spain",
"value": [520938, 2.346, "西班牙"]
},
{
"name": "China",
"value": [404494, 1.822, "中国"]
}
]
},
{
"time": 2017,
"data": [{
"name": "United States of America",
"value": [9898800, 30.659, "美国"]
},
{
"name": "Japan",
"value": [4731199, 14.456, "日本"]
},
{
"name": "Germany",
"value": [1886400, 5.843, "德国"]
},
{
"name": "United Kingdom",
"value": [1477132, 4.575, "英国"]
},
{
"name": "France",
"value": [1326333, 4.108, "法国"]
},
{
"name": "China",
"value": [1192836, 3.695, "中国"]
},
{
"name": "Italy",
"value": [1097343, 3.399, "意大利"]
},
{
"name": "Canada",
"value": [724914, 2.245, "加拿大"]
},
{
"name": "Brazil",
"value": [644729, 1.997, "巴西"]
},
{
"name": "Mexico",
"value": [636731, 1.972, "墨西哥"]
}
]
},
{
"time": 2016,
"data": [{
"name": "United States of America",
"value": [14419600, 22.679, "美国"]
},
{
"name": "China",
"value": [5951462, 9.360, "中国"]
},
{
"name": "Japan",
"value": [5488424, 8.632, "日本"]
},
{
"name": "Germany",
"value": [3306028, 5.200, "德国"]
},
{
"name": "France",
"value": [2565755, 4.035, "法国"]
},
{
"name": "United Kingdom",
"value": [2266049, 3.564, "英国"]
},
{
"name": "Brazil",
"value": [2143035, 3.371, "巴西"]
},
{
"name": "Italy",
"value": [2056941, 3.235, "意大利"]
},
{
"name": "India",
"value": [1678297, 2.640, "印度"]
},
{
"name": "Canada",
"value": [1577040, 2.480, "加拿大"]
}
]
}
]
var option = {
baseOption: {
animationDurationUpdate: 1000,
animationEasingUpdate: 'quinticInOut',
timeline: {
axisType: 'category',
orient: 'vertical',
autoPlay: true,
inverse: true,
playInterval: 5000,
left: null,
right: 5,
top: 20,
bottom: 20,
width: 46,
height: null,
label: {
normal: {
textStyle: {
color: '#ddd'
}
},
emphasis: {
textStyle: {
color: '#fff'
}
}
},
symbol: 'none',
lineStyle: {
color: '#555'
},
checkpointStyle: {
color: '#bbb',
borderColor: '#777',
borderWidth: 1
},
controlStyle: {
showNextBtn: false,
showPrevBtn: false,
normal: {
color: '#666',
borderColor: '#666'
},
emphasis: {
color: '#aaa',
borderColor: '#aaa'
}
},
data: data.map(function(ele) {
return ele.time
})
},
backgroundColor: '#404a59',
title: {
text: '互动营销中心全球用户',
subtext: '单位:人',
left: 'center',
top: 'top',
textStyle: {
fontSize: 25,
color: 'rgba(255,255,255, 0.9)'
}
},
tooltip: {
formatter: function(params) {
if ('value' in params.data) {
return params.data.value[2] + ': ' + params.data.value[0];
}
}
},
grid: {
left: '12%',
right: '45%',
top: '70%',
bottom: 20
},
xAxis: {},
yAxis: {},
series: [{
id: 'map',
type: 'map',
mapType: 'world',
top: '10%',
bottom: '25%',
left: 10,
itemStyle: {
normal: {
areaColor: '#323c48',
borderColor: '#404a59'
},
emphasis: {
label: {
show: true
},
areaColor: 'rgba(255,255,255, 0.5)'
}
},
data: []
}, {
id: 'bar',
type: 'bar',
tooltip: {
show: false
},
label: {
normal: {
show: true,
position: 'right',
textStyle: {
color: '#ddd'
}
}
},
data: []
}, {
id: 'pie',
type: 'pie',
radius: ['8%', '20%'],
center: ['75%', '85%'],
roseType: 'radius',
tooltip: {
formatter: '{b} {d}%'
},
data: [],
label: {
normal: {
textStyle: {
color: '#ddd'
}
}
},
labelLine: {
normal: {
lineStyle: {
color: '#ddd'
}
}
},
itemStyle: {
normal: {
borderColor: 'rgba(0,0,0,0.3)',
borderSize: 1
}
}
}]
},
options: []
}
for (var i = 0; i < data.length; i++) {
//计算其余国家GDP
var restPercent = 100;
var restValue = 0;
data[i].data.forEach(function(ele) {
restPercent = restPercent - ele.value[1];
});
restValue = data[i].data[0].value[0] * (restPercent / data[i].data[0].value[1]);
console.log(restPercent);
console.log(restValue);
option.options.push({
visualMap: [{
dimension: 0,
left: 10,
itemWidth: 12,
min: data[i].data[9].value[0],
max: data[i].data[0].value[0],
text: ['High', 'Low'],
textStyle: {
color: '#ddd'
},
inRange: {
color: ['lightskyblue', 'yellow', 'orangered', 'red']
}
}],
xAxis: {
type: 'value',
boundaryGap: [0, 0.1],
axisLabel: {
show: false,
}
},
yAxis: {
type: 'category',
axisLabel: {
textStyle: {
color: '#ddd'
}
},
data: data[i].data.map(function(ele) {
return ele.value[2]
}).reverse()
},
series: [{
id: 'map',
data: data[i].data
}, {
id: 'bar',
data: data[i].data.map(function(ele) {
return ele.value[0]
}).sort(function(a, b) {
return a > b
})
}, {
id: 'pie',
data: data[i].data.map(function(ele) {
return {
name: ele.value[2],
value: ele.value
}
}).concat({
name: '其他国家',
value: restValue
}),
}]
})
}