treemap-option2.html
3.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Option View</title>
<script src="esl.js"></script>
<script src="config.js"></script>
<style type="text/css">
body {
margin: 0;
}
html, body, #option-view-chart {
height: 100%;
}
</style>
</head>
<body>
<div id="option-view-chart"></div>
<script src="./lib/jquery.min.js"></script>
<script>
var echarts;
var formatUtil;
var chart;
require([
'echarts',
'echarts/util/format',
'echarts/component/tooltip',
'echarts/component/legend',
'echarts/chart/treemap'
], function (ec, format) {
echarts = ec;
formatUtil = format;
chart = echarts.init($('#option-view-chart')[0]);
chart.showLoading();
$.getJSON('./data/option-view2.json', initEcharts);
});
function initEcharts(rawData) {
chart.hideLoading();
function convert(source, target, basePath) {
for (var key in source) {
var path = basePath ? (basePath + '.' + key) : key;
if (key.match(/^\$/)) {
}
else {
target.children = target.children || [];
var child = {
name: path
};
target.children.push(child);
convert(source[key], child, path);
}
}
if (!target.children) {
target.value = source.$count || 1;
}
else {
target.children.push({
name: basePath,
value: source.$count
});
}
}
var data = [];
convert(rawData, data, '');
chart.setOption({
title: {
text: 'ECharts 配置项查询分布',
subtext: '2016/04',
left: 'leafDepth'
},
tooltip: {},
series: [{
name: 'option',
type: 'treemap',
visibleMin: 300,
data: data.children,
leafDepth: 2,
levels: [
{
itemStyle: {
normal: {
borderColor: '#333',
borderWidth: 1,
gapWidth: 1
}
}
},
{
colorSaturation: [0.3, 0.6],
itemStyle: {
normal: {
borderColor: '#fff',
borderWidth: 1
}
}
}
]
}]
});
}
$(window).resize(function () {
chart && chart.resize();
})
</script>
</body>
</html>