/////////////////////参数///////////////////////////////
var data = {
title: '图谱',
dataName: ["vue", "css", "node", "java", "js", "html", "c", "c++", "ios", "php", "Android"],
dataLink: [
[
"vue",
"Android",
4.1,
1
],
[
"vue",
"css",
36.1,
1
],
[
"vue",
"java",
11.7,
1
],
[
"vue",
"html",
11.7,
1
],
[
"vue",
"c++",
5.5,
1
],
[
"php",
"Android",
10.1,
10
],
[
"php",
"css",
0.7,
10
],
[
"php",
"java",
15.4,
10
],
[
"php",
"html",
24.9,
10
],
[
"php",
"c++",
12.8,
10
],
[
"Android",
"vue",
0.3,
11
],
[
"Android",
"php",
17.3,
11
],
[
"Android",
"node",
1.3,
11
],
[
"Android",
"js",
19.4,
11
],
[
"Android",
"c",
6.8,
11
],
[
"Android",
"ios",
12.9,
11
],
[
"css",
"vue",
41.1,
2
],
[
"css",
"php",
3,
2
],
[
"css",
"node",
5.1,
2
],
[
"css",
"js",
9.3,
2
],
[
"css",
"c",
5.6,
2
],
[
"css",
"ios",
6.3,
2
],
[
"node",
"Android",
0.6,
3
],
[
"node",
"css",
1.2,
3
],
[
"node",
"java",
7.7,
3
],
[
"node",
"html",
44.3,
3
],
[
"node",
"c++",
4,
3
],
[
"java",
"vue",
0.4,
4
],
[
"java",
"php",
16.4,
4
],
[
"java",
"node",
1.6,
4
],
[
"java",
"js",
24.9,
4
],
[
"java",
"c",
4.5,
4
],
[
"java",
"ios",
23.6,
4
],
[
"js",
"Android",
5.8,
5
],
[
"js",
"css",
0.5,
5
],
[
"js",
"java",
57.2,
5
],
[
"js",
"html",
7.5,
5
],
[
"js",
"c++",
5,
5
],
[
"html",
"vue",
0.4,
6
],
[
"html",
"php",
23.6,
6
],
[
"html",
"node",
6.6,
6
],
[
"html",
"js",
8.3,
6
],
[
"html",
"c",
5.5,
6
],
[
"html",
"ios",
14.6,
6
],
[
"c",
"Android",
2.5,
7
],
[
"c",
"css",
1.1,
7
],
[
"c",
"java",
7.9,
7
],
[
"c",
"html",
6.2,
7
],
[
"c",
"c++",
24.5,
7
],
[
"c++",
"vue",
0.3,
8
],
[
"c++",
"php",
16,
8
],
[
"c++",
"node",
1.5,
8
],
[
"c++",
"js",
8.8,
8
],
[
"c++",
"c",
15.9,
8
],
[
"c++",
"ios",
39.7,
8
],
[
"ios",
"Android",
5.9,
9
],
[
"ios",
"css",
0.4,
9
],
[
"ios",
"java",
19.8,
9
],
[
"ios",
"html",
5.1,
9
],
[
"ios",
"c++",
25.9,
9
],
[
"vue",
"php",
3.6,
1
],
[
"vue",
"node",
3,
1
],
[
"vue",
"js",
6.8,
1
],
[
"vue",
"c",
12.6,
1
],
[
"vue",
"ios",
4.9,
1
],
[
"php",
"vue",
0.7,
10
],
[
"php",
"node",
1.9,
10
],
[
"php",
"js",
5.2,
10
],
[
"php",
"c",
10.2,
10
],
[
"php",
"ios",
18.1,
10
],
[
"Android",
"css",
0.4,
11
],
[
"Android",
"java",
30.6,
11
],
[
"Android",
"html",
7.7,
11
],
[
"Android",
"c++",
3.3,
11
],
[
"css",
"Android",
1.9,
2
],
[
"css",
"java",
15.6,
2
],
[
"css",
"html",
3.9,
2
],
[
"css",
"c++",
8.1,
2
],
[
"node",
"vue",
1.4,
3
],
[
"node",
"php",
16.8,
3
],
[
"node",
"js",
6.1,
3
],
[
"node",
"c",
4,
3
],
[
"node",
"ios",
13.9,
3
],
[
"java",
"Android",
6.7,
4
],
[
"java",
"css",
1.6,
4
],
[
"java",
"html",
8.6,
4
],
[
"java",
"c++",
11.8,
4
],
[
"js",
"vue",
0.9,
5
],
[
"js",
"php",
4.6,
5
],
[
"js",
"node",
2.4,
5
],
[
"js",
"c",
2.1,
5
],
[
"js",
"ios",
14,
5
],
[
"html",
"Android",
5.9,
6
],
[
"html",
"css",
1.6,
6
],
[
"html",
"java",
29,
6
],
[
"html",
"c++",
4.4,
6
],
[
"c",
"vue",
0.4,
7
],
[
"c",
"php",
8.7,
7
],
[
"c",
"node",
2.4,
7
],
[
"c",
"js",
3.6,
7
],
[
"c",
"ios",
42.6,
7
],
[
"c++",
"Android",
1.5,
8
],
[
"c++",
"css",
1,
8
],
[
"c++",
"java",
11.5,
8
],
[
"c++",
"html",
3.8,
8
],
[
"ios",
"vue",
0.3,
9
],
[
"ios",
"php",
13.8,
9
],
[
"ios",
"node",
5.7,
9
],
[
"ios",
"js",
7.9,
9
],
[
"ios",
"c",
15.4,
9
]
],
// size:20, //默认是dataName的长度,size可自行设置,取值范围(x>=5||x<=20)
color: [
'#4CB7F2',
'#458FF0',
'#F5B751',
'#70C6A2',
'#70649A',
'#4F726C',
'#E58980',
'#BC9F77',
'#EDC7C7',
'#B55D4C',
'#69A8A0',
'#4CB7F2',
'#458FF0',
'#F5B751',
'#70C6A2',
'#B28ECC',
'#68A79F',
'#E58980',
'#BC9F77',
'#EDC7C7',
'#E19665',
'#8AA38A',
// '#B28FCE',
// '#6DA8C1',
// '#A4809D',
// '#7087B6',
// '#AAB06A',
// '#8AA38A',
// '#D0A28F',
// '#58AFA2',
// '#6FBC89',
] //颜色种类根据dataName长度定制
}
//////////////////////////////////////////////
var {
title,
dataName,
dataLink,
color
} = data
var le = data.size || dataName.length;
/////////////根据dataName的多上生成球的位置//////////////////
////////////具体位置还需要根据画布大小定制并进行微调/////////
if (le == 5) {
// dataName = [
// 'c1', 'c2', 'c3', 'c4', 'css',
// ];
var symbolSize = 54;
var xIndex = [
'100', '80', '120', '85', '115',
];
var yIndex = [
'80',
'95', '95',
'115', '115',
];
} else if (le == 6) {
// dataName = [
// 'c1', 'c2', 'c3', 'c4', 'css','c6'
// ];
var symbolSize = 55;
var xIndex = [
'100', '70', '130', '70', '130', '100',
];
var yIndex = [
'80',
'95', '95',
'120', '120',
'135',
];
} else if (le == 7) {
var symbolSize = 50;
// dataName = [
// 'c1', 'c2', 'c3', 'c4', 'css', 'c6', 'c7'
// ];
var xIndex = [
'100', '60', '140', '50', '150', '75',
'125',
];
var yIndex = [
'55',
'75', '75',
'110', '110',
'145', '145',
];
} else if (le == 8) {
var symbolSize = 50;
// dataName = [
// 'c1', 'c2', 'c3', 'c4', 'css', 'c6', 'c7', 'c8'
// ];
var xIndex = [
'100', '60', '140', '40', '160', '60',
'140', '100',
];
var yIndex = [
'35',
'60', '60',
'100', '100',
'135', '135',
'155',
];
} else if (le == 9) {
var symbolSize = 44;
dataName = [
'c1', 'c2', 'c3', 'c4', 'css', 'c6', 'c7', 'c8', 'c9'
];
var xIndex = [
'100', '40', '160', '15', '185', '40',
'100', '160', '100',
];
var yIndex = [
'18',
'45', '45',
'100', '100',
'150', '100', '150',
'180',
];
} else if (le == 10) {
var symbolSize = 44;
/* dataName = [
'c1', 'c2', 'c3', 'c4', 'css', 'c6', 'c7', 'c8', 'c9',
'c10',
];*/
var xIndex = [
'100', '40', '160', '15', '185', '40',
'100', '165', '75', '125',
];
var yIndex = [
'18',
'45', '45',
'100', '100',
'150', '100', '145',
'180', '180',
];
} else if (le == 11) {
var symbolSize = 43;
/* dataName = [
'c1', 'c2', 'c3', 'c4', 'css', 'c6', 'c7', 'c8', 'c9',
'c10', 'c11',
// ];*/
var xIndex = [
'100', '40', '160', '15', '185', '40',
'70', '130', '165', '75', '125',
];
var xIndex = [
'110', '50', '170', '25', '195', '50',
'80', '140', '175', '85', '135',
];
var yIndex = [
'20',
'45', '45',
'100', '100',
'150', '100', '100', '150',
'180', '180',
];
} else if (le == 12) {
var symbolSize = 42;
/* dataName = [
'c1', 'c2', 'c3', 'c4', 'css', 'c6', 'c7', 'c8', 'c9',
'c10', 'c11', 'c12',
];*/
// var xIndex = [
// '100', '40', '160', '15', '185', '70', '130', '40',
// '70', '130', '165', '100',
// ];
var xIndex = [
'110', '50', '170', '25', '195', '80', '140', '50',
'80', '140', '175', '110',
];
var yIndex = [
'15',
'45', '45',
'100', '100',
'80', '80',
'150', '120', '120', '150',
'180',
];
} else if (le == 13) {
var symbolSize = 40;
/* dataName = [
'c1', 'c2', 'c3', 'c4', 'css', 'c6', 'c7', 'c8', 'c9',
'c10', 'c11', 'c12', 'c13',
];*/
var xIndex = [
'100', '40', '160', '15', '185', '70', '130', '40',
'70', '130', '165', '75', '125',
];
var yIndex = [
'15',
'45', '45',
'100', '100',
'80', '80',
'150', '120', '120', '145',
'180', '180',
];
} else if (le == 14) {
var symbolSize = 39;
/*dataName = [
'c1', 'c2', 'c3', 'c4', 'css', 'c6', 'c7', 'c8', 'c9',
'c10', 'c11', 'c12', 'c13', 'c14',
];*/
var xIndex = [
'100', '40', '160', '15', '100', '185', '65', '135', '40',
'75', '125', '165', '75', '125',
];
var yIndex = [
'15',
'45', '45',
'100', '60', '100',
'85', '85',
'150', '130', '130', '145',
'180', '180',
];
} else if (le == 15) {
var symbolSize = 39;
/* dataName = [
'c1', 'c2', 'c3', 'c4', 'css', 'c6', 'c7', 'c8', 'c9',
'c10', 'c11', 'c12', 'c13', 'c14', 'c15'
];*/
var xIndex = [
'100', '40', '160', '15', '100', '185', '65', '135', '40',
'60', '135', '165', '100', '75', '125',
];
var yIndex = [
'15',
'45', '45',
'100', '50', '100',
'80', '80',
'150', '120', '120', '145',
'150',
'180', '180',
];
} else if (le == 16) {
var symbolSize = 38;
/*dataName = [
'c1', 'c2', 'c3', 'c4', 'css', 'c6', 'c7', 'c8', 'c9',
'c10', 'c11', 'c12', 'c13', 'c14', 'c15', 'c16',
];*/
var xIndex = [
'100', '40', '160', '15', '100', '185', '65', '135', '40',
'60', '100', '135', '165', '100', '75', '125',
];
var yIndex = [
'15',
'45', '45',
'100', '50', '100',
'80', '80',
'150', '120', '100', '120', '145',
'150',
'180', '180',
];
} else if (le == 17) {
var symbolSize = 36;
/*dataName = [
'c1', 'c2', 'c3', 'c4', 'css', 'c6', 'c7', 'c8', 'c9',
'c10', 'c11', 'c12', 'c13', 'c14', 'c15', 'c16', 'c17',
];*/
var xIndex = [
'100', '40', '160', '15', '100', '185', '65', '135', '40',
'60', '100', '150', '165', '83', '123', '80', '130',
];
var yIndex = [
'15',
'45', '45',
'100', '50', '100',
'65', '65',
'150', '100', '100', '100', '145',
'140', '140',
'180', '180',
];
} else if (le == 18) {
var symbolSize = 36;
/* dataName = [
'c1', 'c2', 'c3', 'c4', 'css', 'c6', 'c7', 'c8', 'c9',
'c10', 'c11', 'c12', 'c13', 'c14', 'c15', 'c16', 'c17', 'c18',
];*/
var xIndex = [
'100', '50', '150', '15', '100', '185', '65', '135', '15',
'50', '100', '150', '190', '83', '123', '50', '150', '100',
];
var yIndex = [
'10',
'25', '25',
'65', '50', '65',
'65', '65',
'120', '100', '100', '100', '120',
'140', '140',
'165', '165',
'185',
];
} else if (le == 19) {
var symbolSize = 35;
/* dataName = [
'c1', 'c2', 'c3', 'c4', 'css', 'c6', 'c7', 'c8', 'c9',
'c10', 'c11', 'c12', 'c13', 'c14', 'c15', 'c16', 'c17', 'c18',
'c19'
];*/
var xIndex = [
'100', '50', '150', '15', '100', '185', '65', '135', '10',
'50', '100', '150', '190', '83', '123', '35', '170', '75',
'130',
];
var yIndex = [
'10',
'25', '25',
'65', '50', '65',
'65', '65',
'110', '100', '100', '100', '110',
'140', '140',
'150', '150',
'180', '180',
];
}
if (le == 20) {
var symbolSize = 35;
var xIndex = [
'100', '50', '150', '15', '100', '185', '65', '135', '0',
'50', '100', '150', '200', '83', '123', '15', '185', '50',
'150', '100',
];
var yIndex = [
'0',
'15', '15',
'55', '50', '55',
'65', '65',
'100', '100', '100', '100', '100',
'140', '140',
'140', '140',
'175', '175',
'190',
];
}
/////////////////////////////////////////////////
function getDate() {
let _data = [];
for (var i = 0, le = dataName.length; i < le; i++) {
_data.push({
name: dataName[i],
x: xIndex[i],
y: yIndex[i],
itemStyle: {
normal: {
color: color[i],
}
},
label: {
normal: {
x: 'center',
y: 'center',
show: true,
textStyle: {
fontSize: '12',
fontWeight: '600',
lineHeight: '40',
color: '#000'
}
}
},
})
}
return _data;
}
function getLinks() {
let _data = [];
for (var i = 0, le = dataLink.length; i < le; i++) {
_data.push({
source: dataLink[i][0],
target: dataLink[i][1],
lineStyle: {
normal: {
opacity: 0.9,
width: dataLink[i][2] * (.1),
curveness: 0.3,
color: color[dataLink[i][3] - 1]
}
},
})
}
return _data;
}
option = {
title: {
text: title,
x: 'center',
y: '2%',
textStyle: {
color: '#333',
fontSize: '16',
fontWeight: 'normal',
top: '0',
},
},
// grid: {
// 'top': '8%'
// },
series: [{
type: 'graph',
layout: 'none',
symbolSize: symbolSize, //需要根据dataName多少进行调整
label: {
normal: {
show: true
}
},
edgeSymbol: ['circle', 'none'],
edgeSymbolSize: [0, 0],
edgeLabel: {
normal: {
textStyle: {
fontSize: 20
}
}
},
data: getDate(),
links: getLinks(),
}]
};