95 lines
3.4 KiB
HTML
95 lines
3.4 KiB
HTML
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<script src="esl.js"></script>
|
|
<script src="config.js"></script>
|
|
<script src="lib/jquery.min.js"></script>
|
|
<script src="lib/dat.gui.min.js"></script>
|
|
</head>
|
|
<body>
|
|
<style>
|
|
html, body, #main {
|
|
width: 100%;
|
|
height: 100%;
|
|
margin: 0;
|
|
}
|
|
</style>
|
|
<div id="main"></div>
|
|
<script>
|
|
|
|
require([
|
|
'echarts',
|
|
|
|
'extension/dataTool/gexf',
|
|
|
|
'echarts/chart/graph',
|
|
|
|
'echarts/component/title',
|
|
'echarts/component/legend',
|
|
'echarts/component/geo',
|
|
'echarts/component/tooltip',
|
|
'echarts/component/visualMap'
|
|
], function (echarts, gexf) {
|
|
|
|
var chart = echarts.init(document.getElementById('main'), null, {
|
|
renderer: 'canvas'
|
|
});
|
|
|
|
$.get('./data/les-miserables.gexf', function (xml) {
|
|
var graph = gexf.parse(xml);
|
|
var categories = [];
|
|
for (var i = 0; i < 9; i++) {
|
|
categories[i] = {
|
|
name: '类目' + i
|
|
};
|
|
}
|
|
graph.nodes.forEach(function (node) {
|
|
node.itemStyle = null;
|
|
node.symbolSize = 10;
|
|
node.value = node.symbolSize;
|
|
node.label = {
|
|
normal: {
|
|
show: node.symbolSize > 30
|
|
}
|
|
};
|
|
node.category = node.attributes['modularity_class'];
|
|
node.x = node.y = null;
|
|
});
|
|
chart.setOption({
|
|
legend: [{
|
|
// selectedMode: 'single',
|
|
data: categories.map(function (a) {
|
|
return a.name;
|
|
})
|
|
}],
|
|
animationDurationUpdate: 1500,
|
|
animationEasingUpdate: 'quinticInOut',
|
|
series : [
|
|
{
|
|
name: 'Les Miserables',
|
|
type: 'graph',
|
|
layout: 'force',
|
|
data: graph.nodes,
|
|
links: graph.links,
|
|
categories: categories,
|
|
animation: false,
|
|
roam: true,
|
|
draggable: true,
|
|
edgeSymbol: ['none', 'arrow'],
|
|
edgeSymbolSize: 5,
|
|
force: {
|
|
repulsion: [0, 100]
|
|
},
|
|
label: {
|
|
normal: {
|
|
position: 'right'
|
|
}
|
|
}
|
|
}
|
|
]
|
|
});
|
|
});
|
|
});
|
|
</script>
|
|
</body>
|
|
</html> |