Highcharts 树状图(Treemap)
本章节我们将为大家介绍 Highcharts 的热点图。
我们在前面的章节已经了解了 Highcharts 配置语法。接下来让我们来看下 Highcharts 的其他配置。
树状图
series 配置
设置 series 的 type 属性为 treemap ,series.type 描述了数据列类型。默认值为 \”line\”。
var chart = {
type: \'treemap\'
};
实例
文件名:highcharts_tree_map.htm
<html>
<head>
<meta charset=\"UTF-8\" />
<title>Highcharts 教程 | 教程</title>
<script src=\"http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js\"></script>
<script src=\"http://code.highcharts.com/highcharts.js\"></script>
<script src=\"http://code.highcharts.com/modules/treemap.js\"></script>
<script src=\"http://code.highcharts.com/modules/heatmap.js\"></script>
</head>
<body>
<div style=\"width: 550px; height: 400px; margin: 0 auto\"></div>
<script language=\"JavaScript\">
$(document).ready(function() {
var title = {
text: \'Highcharts Treemap\'
};
var colorAxis = {
minColor: \'#FFFFFF\',
maxColor: Highcharts.getOptions().colors[0]
};
var series= [{
type: \"treemap\",
layoutAlgorithm: \'squarified\',
data: [{
name: \'A\',
value: 6,
colorValue: 1
}, {
name: \'B\',
value: 6,
colorValue: 2
}, {
name: \'C\',
value: 4,
colorValue: 3
}, {
name: \'D\',
value: 3,
colorValue: 4
}, {
name: \'E\',
value: 2,
colorValue: 5
}, {
name: \'F\',
value: 2,
colorValue: 6
}, {
name: \'G\',
value: 1,
colorValue: 7
}]
}];
var json = {};
json.title = title;
json.colorAxis = colorAxis;
json.series = series;
$(\'#container\').highcharts(json);
});
</script>
</body>
</html>
以上实例输出结果为:
不同等级树状图
以下实例使用不同颜色来标识不同等级的树状图。
实例
文件名:highcharts_tree_levels.htm(完整源码请点击实例查看)
<html>
<head>
<meta charset=\"UTF-8\" />
<title>Highcharts 教程 | 教程</title>
<script src=\"http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js\"></script>
<script src=\"http://code.highcharts.com/highcharts.js\"></script>
<script src=\"http://code.highcharts.com/modules/treemap.js\"></script>
<script src=\"http://code.highcharts.com/modules/heatmap.js\"></script>
</head>
<body>
<div style=\"width: 550px; height: 400px; margin: 0 auto\"></div>
<script language=\"JavaScript\">
$(document).ready(function() {
var title = {
text: \'Fruit consumption\'
};
var series = [{
type: \"treemap\",
layoutAlgorithm: \'stripes\',
alternateStartingDirection: true,
levels: [{
level: 1,
layoutAlgorithm: \'sliceAndDice\',
dataLabels: {
enabled: true,
align: \'left\',
verticalAlign: \'top\',
style: {
fontSize: \'15px\',
fontWeight: \'bold\'
}
}
}],
data: [{
id: \'A\',
name: \'Apples\',
color: \"#EC2500\"
}, {
id:\'B\',
name: \'Bananas\',
color: \"#ECE100\"
}, {
id: \'O\',
name: \'Oranges\',
color: \'#EC9800\'
}, {
name: \'Anne\',
parent: \'A\',
value: 5
}, {
name: \'Rick\',
parent: \'A\',
value: 3
}, {
name: \'Peter\',
parent: \'A\',
value: 4
}, {
name: \'Anne\',
parent: \'B\',
value: 4
}, {
name: \'Rick\',
parent: \'B\',
value: 10
}, {
name: \'Peter\',
parent: \'B\',
value: 1
}, {
name: \'Anne\',
parent: \'O\',
value: 1
}, {
name: \'Rick\',
parent: \'O\',
value: 3
}, {
name: \'Peter\',
parent: \'O\',
value: 3
}, {
name: \'Susanne\',
parent: \'Kiwi\',
value: 2,
color: \'#9EDE00\'
}]
}];
var json = {};
json.title = title;
json.series = series;
$(\'#container\').highcharts(json);
});
</script>
</body>
</html>
以上实例输出结果为:
大数据量树状图
以下实例颜色了大数据量的树状图,具体实例数据可通过点击\”尝试一下\”查看。
文件名:highcharts_tree_largemap.htm
<html>
<head>
<meta charset=\"UTF-8\" />
<title>Highcharts 教程 | 教程</title>
<script src=\"http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js\"></script>
<script src=\"http://code.highcharts.com/highcharts.js\"></script>
<script src=\"http://code.highcharts.com/modules/treemap.js\"></script>
<script src=\"http://code.highcharts.com/modules/heatmap.js\"></script>
</head>
<body>
<div style=\"width: 550px; height: 400px; margin: 0 auto\"></div>
<script language=\"JavaScript\">
$(document).ready(function() {
//省略部分 js 代码
var data = {……};
var points = [],
region_p,
region_val,
region_i,
country_p,
country_i,
cause_p,
cause_i,
cause_name = [];
cause_name[\'Communicable & other Group I\'] = \'Communicable diseases\';
cause_name[\'Noncommunicable diseases\'] = \'Non-communicable diseases\';
cause_name[\'Injuries\'] = \'Injuries\';
region_i = 0;
for (var region in data) {
region_val = 0;
region_p = {
id: \"id_\" + region_i,
name: region,
color: Highcharts.getOptions().colors[region_i]
};
country_i = 0;
for (var country in data[region]) {
country_p = {
id: region_p.id + \"_\" + country_i,
name: country,
parent: region_p.id
};
points.push(country_p);
cause_i = 0;
for (var cause in data[region][country]) {
cause_p = {
id: country_p.id + \"_\" + cause_i,
name: cause_name[cause],
parent: country_p.id,
value: Math.round(+data[region][country][cause])
};
region_val += cause_p.value;
points.push(cause_p);
cause_i++;
}
country_i++;
}
region_p.value = Math.round(region_val / country_i);
points.push(region_p);
region_i++;
}
var chart = {
renderTo: \'container\'
};
var title = {
text: \'Global Mortality Rate 2012, per 100 000 population\'
};
var subtitle: {
text: \'Click points to drill down. Source: <a href=\"http://apps.who.int/gho/data/node.main.12?lang=en\">WHO</a>.\'
};
var series = [{
type: \"treemap\",
layoutAlgorithm: \'squarified\',
allowDrillToNode: true,
dataLabels: {
enabled: false
},
levelIsConstant: false,
levels: [{
level: 1,
dataLabels: {
enabled: true
},
borderWidth: 3
}],
data: points
}];
var json = {};
json.title = title;
json.series = series;
$(\'#container\').highcharts(json);
});
</script>
</body>
</html>
以上实例输出结果为:
点我分享笔记