Highcharts 下钻(Drilldown)柱状图 Demo

功能:点击顶层柱状图,可以向下展开查看浏览器各版本细分市场份额,典型上钻‑下钻交互图表

HTML预览代码

html 复制代码
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>浏览器市场份额-下钻柱状图</title>
    <!-- 必须额外引入 drilldown 下钻模块 -->
    <script src="https://code.highcharts.com/highcharts.js"></script>
    <script src="https://code.highcharts.com/modules/drilldown.js"></script>
</head>
<body>
    <div id="container" style="width:100%;height:500px;"></div>

<script>
Highcharts.chart('container', {
    chart: {
        type: 'column'
    },
    title: {
        text: '浏览器市场份额 · 2022年1月'
    },
    subtitle: {
        text: '点击柱子查看各版本明细。数据来源:<a href="http://statcounter.com" target="_blank">statcounter.com</a>'
    },
    accessibility: {
        announceNewData: {
            enabled: true
        }
    },
    xAxis: {
        type: 'category'
    },
    yAxis: {
        title: {
            text: '市场占比(%)'
        }
    },
    legend: {
        enabled: false
    },
    plotOptions: {
        series: {
            borderWidth: 0,
            dataLabels: {
                enabled: true,
                format: '{point.y:.1f}%'
            }
        }
    },
    tooltip: {
        headerFormat: '<span style="font-size:11px">{series.name}</span><br>',
        pointFormat: '<span style="color:{point.color}">{point.name}</span>: ' +
            '<b>{point.y:.2f}%</b> 占比<br/>'
    },
    series: [
        {
            name: '浏览器',
            colorByPoint: true,
            data: [
                {
                    name: 'Chrome',
                    y: 63.06,
                    drilldown: 'Chrome'
                },
                {
                    name: 'Safari',
                    y: 19.84,
                    drilldown: 'Safari'
                },
                {
                    name: 'Firefox',
                    y: 4.18,
                    drilldown: 'Firefox'
                },
                {
                    name: 'Edge',
                    y: 4.12,
                    drilldown: 'Edge'
                },
                {
                    name: 'Opera',
                    y: 2.33,
                    drilldown: 'Opera'
                },
                {
                    name: 'IE浏览器',
                    y: 0.45,
                    drilldown: 'Internet Explorer'
                },
                {
                    name: '其他',
                    y: 1.582,
                    drilldown: null
                }
            ]
        }
    ],
    drilldown: {
        breadcrumbs: {
            position: {
                align: 'right'
            }
        },
        series: [
            {
                name: 'Chrome',
                id: 'Chrome',
                data: [
                    ['v65.0',0.1],
                    ['v64.0',1.3],
                    ['v63.0',53.02],
                    ['v62.0',1.4],
                    ['v61.0',0.88],
                    ['v60.0',0.56],
                    ['v59.0',0.45],
                    ['v58.0',0.49],
                    ['v57.0',0.32],
                    ['v56.0',0.29],
                    ['v55.0',0.79],
                    ['v54.0',0.18],
                    ['v51.0',0.13],
                    ['v49.0',2.16],
                    ['v48.0',0.13],
                    ['v47.0',0.11],
                    ['v43.0',0.17],
                    ['v29.0',0.26]
                ]
            },
            {
                name: 'Firefox',
                id: 'Firefox',
                data: [
                    ['v58.0',1.02],
                    ['v57.0',7.36],
                    ['v56.0',0.35],
                    ['v55.0',0.11],
                    ['v54.0',0.1],
                    ['v52.0',0.95],
                    ['v51.0',0.15],
                    ['v50.0',0.1],
                    ['v48.0',0.31],
                    ['v47.0',0.12]
                ]
            },
            {
                name: 'IE浏览器',
                id: 'Internet Explorer',
                data: [
                    ['v11.0',6.2],
                    ['v10.0',0.29],
                    ['v9.0',0.27],
                    ['v8.0',0.47]
                ]
            },
            {
                name: 'Safari',
                id: 'Safari',
                data: [
                    ['v11.0',3.39],
                    ['v10.1',0.96],
                    ['v10.0',0.36],
                    ['v9.1',0.54],
                    ['v9.0',0.13],
                    ['v5.1',0.2]
                ]
            },
            {
                name: 'Edge',
                id: 'Edge',
                data: [
                    ['v16',2.6],
                    ['v15',0.92],
                    ['v14',0.4],
                    ['v13',0.1]
                ]
            },
            {
                name: 'Opera',
                id: 'Opera',
                data: [
                    ['v50.0',0.96],
                    ['v49.0',0.82],
                    ['v12.1',0.14]
                ]
            }
        ]
    }
});
</script>
</body>
</html>

核心参数详细讲解

1、依赖模块

复制代码
<script src="https://code.highcharts.com/modules/drilldown.js"></script>

下钻图表必须额外加载 drilldown 模块,否则点击无反应

2、顶层数据与下钻绑定字段

复制代码
{
    name: 'Chrome',
    y: 63.06,
    drilldown: 'Chrome'
}
  • y:顶层展示数值
  • drilldown下钻关联ID ,和下方drilldown.series里的id一一对应;
  • drilldown: null:该柱子禁止下钻(示例‑‑其他)。

3、drilldown 下钻数据集

drilldown.series数组存放每一项点击后展示的子级明细; id必须和顶层drilldown字段的值完全一致,图表才能匹配跳转。

4、breadcrumbs 面包屑导航

复制代码
breadcrumbs: {
    position: { align: 'right' }
}

下钻后图表右上角出现返回顶层的导航按钮,点击即可上钻(返回父级图表)

5、colorByPoint:true

每个柱子独立分配不同颜色,适合分类占比对比。

业务适用场景

  1. 一级行业 → 二级细分行业产值下钻
  2. 省份 → 地市人口、GDP下钻
  3. 总销量 → 各产品明细销量
  4. 大屏看板多层级数据探查

常见踩坑点

  1. 忘记引入drilldown.js模块,点击柱子无效果
  2. 顶层drilldown字符串和子级id大小写不一致,匹配失败
  3. 子级data格式:简写二维数组[['名称',数值]]
相关推荐
翼龙云_cloud27 分钟前
阿里云国际渠道代理商:如何在ECS上部署Flask应用?
运维·数据库·阿里云·flask·云计算
进阶的小木桩36 分钟前
mysql 安装问题解决方案记录
数据库·mysql
2601_962071571 小时前
如何利用SpringSecurity进行认证与授权
java·服务器·数据库
山峰哥1 小时前
数据库工程与查询优化案例深度复盘‌
数据库·sql·oracle·编辑器·深度优先·宽度优先
IT大白鼠1 小时前
MSF数据库与资产管理——专业渗透测试流程
数据库·安全·msf
IvorySQL2 小时前
PostgreSQL 日报|内核多项缺陷修复与数据校验补丁推进(8 月 27 日)
数据库·postgresql·区块链
风吹心凉2 小时前
Agent大脑-RAG知识库
数据库
VALENIAN瓦伦尼安教学设备2 小时前
设备状态检测振动分析实训台案例分析
大数据·数据库·人工智能·嵌入式硬件·算法
黄俊懿2 小时前
【架构师从入门到进阶】第五章:DNS&CDN&网关优化思路——第十节:网关安全-单向加密
网络·数据库·计算机网络·安全·架构·系统架构·架构师