blob: 33463d1bb968b2b12f9545423128953595afb7fc [file] [log] [blame]
var fs = require('fs');
// http://international.caixin.com/2013-09-06/100579154.html
var dataSource = [
['美国','叙利亚反对派',100,'green'],
['美国','阿萨德',100,'red'],
['美国','伊朗',100,'red'],
['美国','塞西',100,'yellow'],
['美国','哈马斯',100,'red'],
['美国','以色列',100,'green'],
['美国','穆斯林兄弟会',100,'yellow'],
['美国','基地组织',100,'red'],
['俄罗斯','叙利亚反对派',100,'red'],
['俄罗斯','阿萨德',100,'green'],
['伊朗','叙利亚反对派',100,'red'],
['伊朗','阿萨德',100,'green'],
['伊朗','黎巴嫩什叶派',100,'green'],
['伊朗','哈马斯',100,'green'],
['以色列','叙利亚反对派',100,'green'],
['以色列','阿萨德',100,'red'],
['以色列','哈马斯',100,'red'],
['土耳其','塞西',100,'red'],
['土耳其','穆斯林兄弟会',100,'green'],
['土耳其','叙利亚反对派',100,'green'],
['土耳其','阿萨德',100,'red'],
['卡塔尔','叙利亚反对派',100,'green'],
['卡塔尔','阿萨德',100,'red'],
['卡塔尔','塞西',100,'red'],
['卡塔尔','穆斯林兄弟会',100,'green'],
['卡塔尔','哈马斯',100,'green'],
['沙特','叙利亚反对派',100,'green'],
['沙特','黎巴嫩逊尼派',100,'green'],
['沙特','塞西',100,'green'],
['沙特','穆斯林兄弟会',100,'red'],
['塞西','穆斯林兄弟会',100,'red'],
['黎巴嫩逊尼派','叙利亚反对派',100,'green'],
['黎巴嫩逊尼派','阿萨德',100,'red'],
['黎巴嫩什叶派','叙利亚反对派',100,'red'],
['黎巴嫩什叶派','阿萨德',100,'green'],
['哈马斯','叙利亚反对派',100,'green'],
['哈马斯','塞西',100,'red'],
['穆斯林兄弟会','阿萨德',100,'red'],
['基地组织','叙利亚反对派',100,'green'],
['基地组织','阿萨德',100,'red'],
['基地组织','沙特',100,'red']
];
var groupIndices = {};
var count = 0;
for (var i = 0; i < dataSource.length; i++) {
var country = dataSource[i][0];
var country2 = dataSource[i][1];
if (groupIndices[country] === undefined) {
groupIndices[country] = count++;
}
if (groupIndices[country2] === undefined) {
groupIndices[country2] = count++;
}
}
for (var i = 0; i < dataSource.length; i++) {
var target = dataSource[i][1];
if (groupIndices[target] === undefined) {
groupIndices[target] = count++;
}
}
var attitudeMap = {
'green' : 0,
'red' : 1,
'yellow' : 2
}
var series = [{
name : '支持',
type : 'chord',
showScaleText : false,
data : [],
matrix : []
}, {
name : '反对',
type : 'chord',
showScaleText : false,
data : [],
matrix : []
}, {
name : '未表态',
type : 'chord',
showScaleText : false,
data : [],
matrix : []
}];
for (var k = 0; k < 3; k++) {
series[k].matrix = [];
for(var countryName in groupIndices) {
var idx = groupIndices[countryName];
series[k].data[idx] = {
name : countryName
}
}
for (var i = 0; i < count; i++) {
series[k].matrix[i] = [];
for (var j = 0; j < count; j++) {
series[k].matrix[i][j] = 0;
}
}
}
for (var i = 0; i < dataSource.length; i++) {
var sourceIdx = groupIndices[dataSource[i][0]];
var targetIdx = groupIndices[dataSource[i][1]];
var val = dataSource[i][2];
var serieIdx = attitudeMap[dataSource[i][3]];
var matrix = series[serieIdx].matrix;
matrix[sourceIdx][targetIdx] += 100;
matrix[targetIdx][sourceIdx] += 10;
}
var res = {
title : {
text : "中东地区的敌友关系",
subtext: '数据来自财新网',
x:'right',
y:'bottom'
},
legend : {
data : Object.keys(groupIndices),
orient : 'vertical',
x : 'left'
},
series : series
}
fs.writeFileSync("middle-east.js", 'define(' + JSON.stringify(series) + ')');