ECharts 实现垂直排列且横向连接的树状图(Treemap)教程

酷敏君_5752

酷敏君_5752

2026-02-23

406人浏览

原创

ECharts 实现垂直排列且横向连接的树状图(Treemap)教程

echarts 原生 treemap 不支持严格的垂直布局与跨系列连接,但可通过多个独立 treemap 实例手动定位、等宽缩放与视觉对齐,模拟出垂直分栏、自上而下排列、横向并列的“类连接树图”效果。

echarts 原生 treemap 不支持严格的垂直布局与跨系列连接,但可通过多个独立 treemap 实例手动定位、等宽缩放与视觉对齐,模拟出垂直分栏、自上而下排列、横向并列的“类连接树图”效果。

在数据可视化实践中,有时需要将不同分类(如部门、产品线、时间周期)以垂直分栏形式并排展示,每栏内部按数值大小自上而下垂直堆叠(即“纵向 treemap”),且各栏之间视觉连贯、宽度协调、高度对齐——这种布局常被称作“垂直连接树图”(vertically connected treemap)。遗憾的是,ECharts 的 series-treemap 类型不提供原生的垂直排序方向控制或跨 series 的布局联动能力;其 squareRatio 参数仅影响单个 treemap 内部矩形的宽高倾向,无法强制整体垂直流式排列,也无法实现多系列间的坐标级对齐。

因此,实现该效果的核心思路是:放弃单 treemap 多层级嵌套,转为多个独立 treemap 实例,并通过精确的 left/width/height 控制位置与比例,配合统一的 levels 配置和视觉设计,达成视觉上的垂直分栏与逻辑连接感。

✅ 推荐实现方案:多 Treemap 并排 + 手动定位

以下是一个生产就绪的配置示例,包含 4 个垂直栏目(CATEGORY A–D),每个栏目独立渲染、宽度可控、禁用交互干扰(nodeClick: false, roam: false),并使用一致的 gapWidth 和单色配色增强纵向节奏感:

ECharts Master
ECharts Master

ECharts 图表大师。根据用户数据和业务上下文,自动设计并生成专业的 ECharts 可视化图表。使用场景:(1) 用户提供表格/JSON/CSV 数据需要可视化,(2) 用户说"帮我做个图"、"画个图表",(3) 需要将查询结果可视化展示。

下载
option = {
  tooltip: {
    trigger: 'item',
    formatter: '{b}: {c} KB'
  },
  series: [
    // CATEGORY A — 左起第1栏(4% 开始,宽23%)
    {
      type: 'treemap',
      name: 'CATEGORY A',
      width: '23%',
      left: '4%',
      height: '80%',        // 统一高度,便于纵向对齐
      top: '10%',
      nodeClick: false,     // 禁用点击,避免干扰
      roam: false,          // 禁用缩放/拖拽
      label: { show: true, formatter: '{b}' },
      itemStyle: { borderColor: '#fff', borderWidth: 1 },
      levels: [{
        color: ['#4facfe'], // 单色系强化垂直一致性
        itemStyle: { gapWidth: 4 }
      }],
      data: [
        {name: 'A1', value: 40},
        {name: 'A2', value: 6},
        {name: 'A3', value: 24},
        {name: 'A4', value: 15},
        {name: 'A5', value: 12},
        {name: 'A6', value: 4},
        {name: 'A7', value: 18}
      ]
    },

    // CATEGORY B — 第2栏(30% 开始,宽23%)
    {
      type: 'treemap',
      name: 'CATEGORY B',
      width: '23%',
      left: '30%',
      height: '80%',
      top: '10%',
      nodeClick: false,
      roam: false,
      label: { show: true, formatter: '{b}' },
      itemStyle: { borderColor: '#fff', borderWidth: 1 },
      levels: [{ color: ['#00f5d4'], itemStyle: { gapWidth: 4 } }],
      data: [
        {name: 'B1', value: 13},
        {name: 'B2', value: 17},
        {name: 'B3', value: 8},
        {name: 'B4', value: 24},
        {name: 'B5', value: 15},
        {name: 'B6', value: 10},
        {name: 'B7', value: 24}
      ]
    },

    // CATEGORY C — 第3栏(56% 开始,宽23%)
    {
      type: 'treemap',
      name: 'CATEGORY C',
      width: '23%',
      left: '56%',
      height: '80%',
      top: '10%',
      nodeClick: false,
      roam: false,
      label: { show: true, formatter: '{b}' },
      itemStyle: { borderColor: '#fff', borderWidth: 1 },
      levels: [{ color: ['#ff9e00'], itemStyle: { gapWidth: 4 } }],
      data: [
        {name: 'C1', value: 4},
        {name: 'C2', value: 20},
        {name: 'C3', value: 6},
        {name: 'C4', value: 18},
        {name: 'C5', value: 22},
        {name: 'C6', value: 35}
      ]
    },

    // CATEGORY D — 第4栏(82% 开始,宽16%,留白适配)
    {
      type: 'treemap',
      name: 'CATEGORY D',
      width: '16%',
      left: '82%',
      height: '80%',
      top: '10%',
      nodeClick: false,
      roam: false,
      label: { show: true, formatter: '{b}' },
      itemStyle: { borderColor: '#fff', borderWidth: 1 },
      levels: [{ color: ['#f72585'], itemStyle: { gapWidth: 4 } }],
      data: [
        {name: 'D1', value: 7},
        {name: 'D2', value: 19},
        {name: 'D3', value: 12},
        {name: 'D4', value: 11},
        {name: 'D5', value: 4},
        {name: 'D6', value: 9}
      ]
    }
  ]
};

⚠️ 关键注意事项

  • 宽度总和需 ≤ 100%:示例中 4% + 23% + 30% + 23% + 56% + 23% + 82% + 16% 是 left 与 width 的叠加逻辑,实际占用为 23% + 23% + 23% + 16% = 85%,剩余 15% 作为栏间/边缘留白,确保响应式安全;
  • 高度与 top 对齐至关重要:所有 treemap 设置相同 height 和 top,才能保证各栏顶部基准线一致,形成真正的“垂直连接”视觉;
  • 禁用交互提升体验:nodeClick: false 和 roam: false 可避免用户误操作导致视图错乱,尤其当多 treemap 紧邻时;
  • 色彩与间距统一增强连贯性:各栏 gapWidth 保持一致(如 4),颜色选用同色系不同明度,强化纵向阅读流;
  • 数据量差异大时建议归一化或限制最小值:若某栏数据极小(如全部

✅ 总结

虽然 ECharts 尚未内置垂直 treemap 布局引擎,但通过「多 series + 精确盒模型控制 + 视觉一致性设计」的组合策略,完全可复现专业级垂直连接树图。该方法稳定、兼容性好(支持所有 ECharts 5+ 版本)、易于维护,且能灵活适配动态数据源——只需将原始分类数据按组拆分,注入对应 series 即可。对于追求更高定制化的场景,亦可结合 graphic 组件绘制连接线或标注,进一步强化“连接”语义。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

echarts 排列

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
ECharts是什么
ECharts是什么

ECharts是基于JavaScript的开源可视化库,能够帮助开发者轻松地实现各种复杂的数据可视化效果,提供了丰富的图表类型和交互功能。本专题为大家提供ECharts是什么的相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.04

872

5

echarts自适应大小设置
echarts自适应大小设置

使用ECharts的自适应大小设置可以使图表能够根据不同屏幕尺寸和设备进行自适应。一种是使用resize事件,在图表容器大小改变时重新渲染图表;另一种是使用CSS样式,通过设置图表容器的宽度和高度为百分比值,使图表容器根据父元素的大小进行自适应。根据实际需求选择合适的方法,可以使图表在不同设备上都能够良好地显示和交互 。

2023.09.13

4925

8

堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

2023.07.18

6427

5

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

2023.08.10

2688

6

Uvicorn 报错与问题解决教程
Uvicorn 报错与问题解决教程

本专题汇总了Uvicorn服务器常见问题与报错解决的教程合集,涵盖启动失败、端口占用、模块导入错误、事件循环冲突及热重载失效等典型故障的排查思路。同时整理了多进程与Worker配置、SSL/HTTPS证书报错、跨域与代理配置等实战解决方案,助你快速定位并解决Uvicorn运行中的各类问题。

2026.11.02

0

14

Uvicorn使用教程
Uvicorn使用教程

本专题汇总了Uvicorn使用教程与启动运行指南,涵盖其作为Python ASGI服务器的定位与特点,以及命令行启动(uvicorn main:app --reload)、参数配置(host/port/workers)、程序内嵌运行与Gunicorn结合部署等核心用法。同时整理了热重载调试、日志配置与生产环境部署优化等技巧,助你快速掌握Uvicorn的运行与配置。

2026.11.02

0

17

Uvicorn安装配置教程
Uvicorn安装配置教程

本专题汇总了Uvicorn的安装配置教程与部署指南,涵盖通过pip安装Uvicorn、启动FastAPI/Starlette应用、开发模式热重载(--reload)及多进程工作模式配置等核心操作。同时整理了结合Gunicorn的生产部署方案、HTTPS与反向代理配置及性能调优技巧,助你快速完成Uvicorn服务的安装与上线部署。

2026.11.02

0

17

Vite 项目如何打包和部署
Vite 项目如何打包和部署

Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

2026.10.28

100

16

Vite 如何搭配 Vue.js
Vite 如何搭配 Vue.js

Vite搭配Vue.js专题汇集创建Vue 3项目、配置开发环境、路径别名、Vue插件、代理、多环境构建与调试的已审核文章,帮助读者完成从初始化到日常开发的配置。

2026.10.28

80

15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程