Highcharts 树状图(Treemap)


Highcharts 树状图(Treemap)

一、简介

Highcharts是一款功能强大的JavaScript图形库,可用于创建各种类型的交互性图表。其中TreeMap是一种可用于呈现树状结构数据的图形,图形呈现以矩形的形式展现,气泡越大代表数据越多。

二、如何使用

1. 引入Highcharts库

<script src="https://code.highcharts.com/highcharts.js"></script>

2. 定义容器

在HTML文件中,定义一个用于显示图表的div容器,设置其高度和宽度,如:

<div id="container" style="height: 500px; width: 100%;"></div>

3. 图表配置

Highcharts.chart('container', {
    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
        }]
    }]
});

4. 配置项说明

常用的配置项如下:

  • type:图表类型,treemap为树状图
  • layoutAlgorithm:布局算法,squarified为矩形显示
  • data:数据,包含name、value和colorValue等属性

三、常用配置

1. 外观

可通过配置项中的colorByPoint属性指定每个数据节点的颜色,如下:

Highcharts.chart('container', {
    series: [{
        type: 'treemap',
        layoutAlgorithm: 'squarified',
        colorByPoint: true,
        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
        }]
    }]
});

可通过配置项中的borderWidth属性给每个数据节点加上边框。

2. 交互性

可通过配置项中的allowDrillToNode属性实现节点之间的交互,如:

Highcharts.chart('container', {
    series: [{
        type: 'treemap',
        layoutAlgorithm: 'squarified',
        allowDrillToNode: true,
        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
        }]
    }]
});

3. 数据格式

可通过配置项中的级联数据格式实现数据的分层显示,如:

Highcharts.chart('container', {
    chart: {
        height: '100%'
    },

    series: [{
        type: "treemap",
        data: treeData
    }]
});

treeData数据格式为:

[{
        name: "总部",
        value: 100,
        colorValue: 1,
        children: [{
                name: "部门1",
                value: 60,
                colorValue: 2,
                children: [{
                        name: "员工1",
                        value: 30,
                        colorValue: 3
                    }, {
                        name: "员工2",
                        value: 30,
                        colorValue: 4
                    }]
            }, {
                name: "部门2",
                value: 20,
                colorValue: 5,
                children: [{
                        name: "员工3",
                        value: 10,
                        colorValue: 6
                    }, {
                        name: "员工4",
                        value: 10,
                        colorValue: 7
                    }]
            }, {
                name: "部门3",
                value: 20,
                colorValue: 8,
                children: [{
                        name: "员工5",
                        value: 10,
                        colorValue: 9
                    }, {
                        name: "员工6",
                        value: 10,
                        colorValue: 10
                    }]
            }]
    }]

四、总结

Highcharts Treemap树状图是一种适用于树状结构数据展示的图表类型,提供了丰富的外观样式、交互性和数据格式,能够满足各种数据展示需求。