echarts-树图、关系图、桑基图、日历图

news2024/11/17 17:37:32

树图

树图主要用来表达关系结构。
树图的端点也收symbol的调节
树图的特有属性:

  1. 树图的方向: layout、orient
  2. 子节点收起展开:initialTreeDepth、expandAndCollapse
  3. 叶子节点设置: leaves
  4. 操作设置:roam
  5. 线条:除了lineStyle可以调节线条外,还有edgeShape调节形状,edgeForkPosition调节树杈位置。

没有子节点的要叶子节点leave
在这里插入图片描述
树图中的data只能有一个数据

 let options = {
    tooltip: {
      show: true,
    },
    series: [
      {
        type: "tree",
        data: [
          {
            name: "a",
            value: 10,
            children: [
              { name: "b1", value: 4 },
              {
                name: "b2",
                value: 6,
                children: [
                  { name: "c1", value: 3 },
                  { name: "c2", value: 3 },
                ],
              },
            ],
          },
        ],
      },
    ],
  };

在这里插入图片描述
layout:树图的布局,有 正交 和 径向 两种,默认情况下是’orthogonal’正交布局,'radial’是径向布局。

 let options = {
    tooltip: {
      show: true,
    },
    series: [
      {
        type: "tree",
        layout: "radial", //"orthogonal"
        data: [
          {
            name: "a",
            value: 10,
            children: [
              { name: "b1", value: 4 },
              {
                name: "b2",
                value: 6,
                children: [
                  { name: "c1", value: 3 },
                  { name: "c2", value: 3 },
                ],
              },
            ],
          },
        ],
      },
    ],
  };

在这里插入图片描述

orient:在 layout = ‘orthogonal’ 的时候,该配置项才生效,在水平方向的排列方式。
取值有’LR’ (从左到右), ‘RL’(从右到左), ‘TB’(从上到下), ‘BT’(从下到上)。
initialTreeDepth:树图初始展开的层级(深度)。如果设置为 -1 或者 null 或者 undefined,所有节点都将展开。
expandAndCollapse:子树折叠和展开的交互,默认打开 。折叠后是否可以打开。

 let options = {
  tooltip: {
    show: true,
  },
  series: [
    {
      type: "tree",
      layout: "orthogonal", //"radial"
      orient: "BT",
      initialTreeDepth: 1,
      expandAndCollapse: true,
      data: [
        {
          name: "a",
          value: 10,
          children: [
            { name: "b1", value: 4 },
            {
              name: "b2",
              value: 6,
              children: [
                { name: "c1", value: 3 },
                { name: "c2", value: 3 },
              ],
            },
          ],
        },
      ],
    },
  ],
};

在这里插入图片描述
roam:是否开启鼠标缩放和平移漫游。
叶子节点的设置
在这里插入图片描述

 let options = {
    tooltip: {
      show: true,
    },
    series: [
      {
        type: "tree",
        layout: "orthogonal", //"radial"
        orient: "BT",
        initialTreeDepth: 1,
        expandAndCollapse: true,
        roam: true,
        leaves: {
          label: {
            show: false,
          },
        },
        data: [
          {
            name: "a",
            value: 10,
            children: [
              { name: "b1", value: 4 },
              {
                name: "b2",
                value: 6,
                children: [
                  { name: "c1", value: 3 },
                  { name: "c2", value: 3 },
                ],
              },
            ],
          },
        ],
      },
    ],
  };

在这里插入图片描述
edgeShape:该配置项只在 正交布局 下有效。树图在 正交布局 下,边的形状
edgeForkPosition: 正交布局下当边的形状是折线时,子树中折线段分叉的位置。子节点在分叉处的位置

 let options = {
   tooltip: {
     show: true,
   },
   series: [
     {
       type: "tree",
       layout: "orthogonal", //"radial"
       orient: "BT",
       initialTreeDepth: 1,
       expandAndCollapse: true,
       roam: true,
       leaves: {
         label: {
           show: false,
         },
       },
       lineStyle: {
         color: "blue",
       },
       edgeShape: "polyline", // curve
       edgeForkPosition: "80%",
       data: [
         {
           name: "a",
           value: 10,
           children: [
             { name: "b1", value: 4 },
             {
               name: "b2",
               value: 6,
               children: [
                 { name: "c1", value: 3 },
                 { name: "c2", value: 3 },
               ],
             },
           ],
         },
       ],
     },
   ],
 };

在这里插入图片描述

矩形树图

矩形树图强调包含关系,相对于树图,更能看出谁的占比大。

矩形树图内的矩形受itemStyle的调节。
矩形树图特有的属性:

  1. 矩形比例:squareRtio
  2. 子节点相关的: leafDepth,drillDownIcon
  3. 操作设置: roam,nodeClick
  4. 颜色相关的设置:colorAlpha,colorSaturation,colorMappingBy
  5. 过小数据隐藏:visibleMin,childrenVisibleMin
  6. 面包屑:breadcrumb
  7. 特殊的label:upperLabel
  8. 数据维度与levels-data里的value的数组写法,visualDimension

矩形数组必须有value

 let options = {
    tooltip: {
      show: true,
    },
    series: [
      {
        type: "treemap",
        data: [
          {
            name: "a",
            value: 10,
            children: [
              { name: "b1", value: 4 },
              {
                name: "b2",
                value: 6,
                children: [
                  { name: "c1", value: 3 },
                  { name: "c2", value: 3 },
                ],
              },
            ],
          },
        ],
      },
    ],
  };

在这里插入图片描述
squareRatio:期望矩形长宽比率,将矩形比例设为1,并不一定就是正方形,只是往正方形的比例靠。

 let options = {
    tooltip: {
      show: true,
    },
    series: [
      {
        type: "treemap",
        squareRatio: 1,
        data: [
          {
            name: "a",
            value: 10,
            children: [
              { name: "b1", value: 4 },
              {
                name: "b2",
                value: 6,
                children: [
                  { name: "c1", value: 3 },
                  { name: "c2", value: 3 },
                ],
              },
            ],
          },
        ],
      },
    ],
  };

在这里插入图片描述
leafDepth:下钻,设置初始展示的节点。
drillDownIcon:当节点可以下钻时的提示符。只能是字符。

默认情况下的下钻提示符
在这里插入图片描述
修改下钻提示符

 let options = {
  tooltip: {
    show: true,
  },
  series: [
    {
      type: "treemap",
      squareRatio: 1,
      leafDepth: 1,
      drillDownIcon: "+",
      data: [
        {
          name: "a",
          value: 10,
          children: [
            { name: "b1", value: 4 },
            {
              name: "b2",
              value: 6,
              children: [
                {
                  name: "c1",
                  value: 3,
                  children: [
                    {
                      name: "d1",
                      value: 2,
                      children: [
                        { name: "e1", value: 1 },
                        { name: "e2", value: 1 },
                      ],
                    },
                    { name: "d2", value: 1 },
                  ],
                },
                { name: "c2", value: 3 },
              ],
            },
          ],
        },
      ],
    },
  ],
};

在这里插入图片描述
nodeClick: “link”, //点击节点后的行为false “zoomToNode”
colorAlpha: [0.3, 1],本系列默认的颜色透明度选取范围,data中的value越小,颜色就越透明。

 let options = {
    tooltip: {
      show: true,
    },
    series: [
      {
        type: "treemap",
        squareRatio: 1,
        leafDepth: 1,
        drillDownIcon: "+",
        nodeClick: "link", //点击节点后的行为false  "zoomToNode"
        colorAlpha: [0.3, 1],
        data: [
          {
            name: "a",
            value: 10,
            children: [
              { name: "b1", value: 4 },
              {
                name: "b2",
                value: 6,
                children: [
                  {
                    name: "c1",
                    value: 3,
                    children: [
                      {
                        name: "d1",
                        value: 2,
                        children: [
                          { name: "e1", value: 1 },
                          { name: "e2", value: 1 },
                        ],
                      },
                      { name: "d2", value: 1 },
                    ],
                  },
                  { name: "c2", value: 3 },
                ],
              },
            ],
          },
        ],
      },
    ],
  };

在这里插入图片描述
colorMappingBy:表示同一层级节点,在颜色列表中以什么样的方式选择color
breadcrumb:对面包屑的设置。

 let options = {
  tooltip: {
    show: true,
  },
  series: [
    {
      type: "treemap",
      squareRatio: 1,
      leafDepth: 1,
      drillDownIcon: "+",
      nodeClick: "link",
      colorAlpha: [0.3, 1],
      colorMappingBy: "value",
      breadcrumb: {
        show: false,
      },
      data: [
        {
          name: "a",
          value: 10,
          children: [
            { name: "b1", value: 4 },
            {
              name: "b2",
              value: 6,
              children: [
                {
                  name: "c1",
                  value: 3,
                  children: [
                    {
                      name: "d1",
                      value: 2,
                      children: [
                        { name: "e1", value: 1 },
                        { name: "e2", value: 1 },
                      ],
                    },
                    { name: "d2", value: 1 },
                  ],
                },
                { name: "c2", value: 3 },
              ],
            },
          ],
        },
      ],
    },
  ],
};

在这里插入图片描述
upperLabel 用于显示矩形的父节点的标签

在这里插入图片描述
visualDimension :支持对数据其他维度进行视觉映射。每个节点的 value 都可以是数组,visualDimension 指定使用的是数组的哪一项。
levels:可以对每个节点进行配置

let options = {
   tooltip: {
     show: true,
   },
   series: [
     {
       type: "treemap",
       squareRatio: 1,
       leafDepth: 1,
       drillDownIcon: "+",
       nodeClick: "link", //点击节点后的行为false  "zoomToNode"
       //   colorAlpha: [0.3, 1],
       colorMappingBy: "value",
       breadcrumb: {
         show: false,
       },
       upperLabel: {
         show: true,
       },
       // visualDimension: 1,
       levels: [
         {
           //给第一层配
           color: ["red"],
         },
         {
           //给第二层配
           color: ["yellow", "green"],
         },
       ],
       data: [
         {
           name: "a",
           value: 10, // [10, 20]
           children: [
             { name: "b1", value: 4 },
             {
               name: "b2",
               value: 6,
               children: [
                 {
                   name: "c1",
                   value: 3,
                   children: [
                     {
                       name: "d1",
                       value: 2,
                       children: [
                         { name: "e1", value: 1 },
                         { name: "e2", value: 1 },
                       ],
                     },
                     { name: "d2", value: 1 },
                   ],
                 },
                 { name: "c2", value: 3 },
               ],
             },
           ],
         },
       ],
     },
   ],
 };

在这里插入图片描述

关系图

关系图先通过data画出点,然后再通过links数组指定连接关系。
1.关系图的节点收symbol的调节
2.特殊的属性
关系图连线相关的 edgeSymbol,edgeSymbolSize,edgeLabel
布局相关的 layout, circular
操作相关 roam

let options = {
   tooltip: {
     show: true,
   },
   series: [
     {
       type: "graph",
       data: [
         {
           value: 10,
           name: "张三",
           x: 40,
           y: 40,
         },
         {
           value: 30,
           name: "李四",
           x: 50,
           y: 100,
         },
         {
           value: 20,
           name: "王五",
           x: 80,
           y: 40,
         },
       ],
       links: [
         {
           source: "张三",
           target: "李四",
         },
       ],
     },
   ],
 };

在这里插入图片描述
然后将设置 xAxis,xAxis,指定坐标系,通过下表来连接


let options = {
    tooltip: {
      show: true,
    },
    xAxis: {
      type: "category",
      data: ["d1", "d2", "d3"],
    },
    yAxis: {},
    series: [
      {
        type: "graph",
        symbolSize: 20,
        coordinateSystem: "cartesian2d",
        data: [
          ["d1", 20],
          ["d2", 30],
          ["d3", 50],
        ],
        links: [
          {
            source: 0,
            target: 1,
          },
        ],
      },
    ],
  };

在这里插入图片描述

桑基图

用来表示流向的,可以看作是关系图的一种图形化表达,跟关系图一样,通过设置data来定义位置,然后用links连接代表流向。

桑基图的节点通过itemStyle来调节,桑基图的连接边受lineStyle调节。

特殊的属性:
朝向: orient
桑基矩形节点相关 nodeWidth,nodeGap

 let options = {
    tooltip: {
      show: true,
    },
    series: [
      {
        type: "sankey",

        data: [
          {
            name: "生产",
          },
          {
            name: "销售",
          },
          {
            name: "出口",
          },
          {
            name: "库存",
          },
        ],
        links: [
          {
            source: "生产",
            target: "销售",
            value: 100,
          },
          {
            source: "生产",
            target: "出口",
            value: 50,
          },
          {
            source: "生产",
            target: "库存",
            value: 40,
          },
        ],
      },
    ],
  };

在这里插入图片描述
nodeWidth:桑基图中每个矩形节点的宽度
nodeGap:桑基图中每一列任意两个矩形节点之间的间隔

  let options = {
    tooltip: {
      show: true,
    },

    series: [
      {
        type: "sankey",
        orient: "vertical",
        nodeWidth: 50,
        nodeGap: 8,
        data: [
          {
            name: "生产",
          },
          {
            name: "销售",
          },
          {
            name: "出口",
          },
          {
            name: "库存",
          },
        ],
        links: [
          {
            source: "生产",
            target: "销售",
            value: 100,
          },
          {
            source: "生产",
            target: "出口",
            value: 50,
          },
          {
            source: "生产",
            target: "库存",
            value: 40,
          },
        ],
      },
    ],
  };

在这里插入图片描述

日历图

日历图更像一种坐标系
calendar:日历坐标系组件
range:日历坐标的范围

 let options = {
    tooltip: {
      show: true,
    },
    calendar: {
      range: ["2024-5"],
      width: 300,
      height: 300,
    },
    series: [{}],
  };

在这里插入图片描述
日历图中的数据以graph关系图为例,可以是其他的图。

 let options = {
    tooltip: {
      show: true,
    },
    calendar: {
      range: ["2024-5"],
      width: 300,
      height: 380,
      orient: "vertical",
    },
    series: [
      {
        type: "graph",
        coordinateSystem: "calendar",
        data: [
          ["2024-5-1", 10],
          ["2024-5-4", 40],
          ["2024-5-7", 20],
          ["2024-5-11", 30],
          ["2024-5-21", 10],
          ["2024-5-22", 10],
        ],
        links: [
          {
            source: 0,
            target: 1,
          },
        ],
      },
    ],
  };

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1687915.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Mysql触发器优化大数据表

背景 数据库的订单数量过多,需要分出热表用于快速查询,热表仅保存10天的订单数据。 解决思路 每次数据库订单表触发增删改时,同步操作到trigger_order_mul_info表,然后trigger_order_mul_info会定期删除超过10天的数据。 增删…

【编译原理复习笔记】正则表达式与自动机

正则表达式 正则表达式是一种用来描述正则语言的更紧凑的表达方法 e.g. r a ( a ∣ b ) ∗ ( ϵ ∣ ( . ∣ ) ( a ∣ b ) ) ra(a|b)^*(\epsilon|(.|\\_ )(a|b)) ra(a∣b)∗(ϵ∣(.∣)​(a∣b)) 正则表达式可以由较小的正则表达式按照特定的规则递归地构建。每个正则表达式定义…

【笔记】软件架构师要点记录(1)

【笔记】软件架构师要点记录 20240517 20240517 连续性:恢复能力;可用性:保持稳定态的时长 增量开发模式:在增量开发中,每个增量都有明确的范围和功能,并按照特定的功能顺序完成。增量之间的范围划分在开发…

防火墙技术基础篇:基于IP地址的转发策略

防火墙技术基础篇:基于IP地址的转发策略的应用场景及实现 什么是基于IP地址的转发策略? 基于IP地址的转发策略是一种网络管理方法,它允许根据目标IP地址来选择数据包的转发路径。这种策略比传统的基于目的地地址的路由更灵活,因…

图片转excel技术在医疗领域的应用探讨

在医疗行业中,图片转Excel技术的应用已经逐渐普及,为医护人员提供了极大的便利。这种技术利用OCR(光学字符识别)和机器学习的先进算法,将图片中的信息自动转化为Excel表格,大大提高了数据处理和分析的效率。…

智能锁千千万,谁是你的NO.1,亲身实测凯迪仕传奇大师K70旗舰新品

智能锁千千万,谁是你的NO.1。欢迎来到智哪儿评测室,这次我们为大家带来了凯迪仕传奇大师K70系列的一款重磅新品。 在科技的浪潮中,家居安全领域正经历着前所未有的变革。智能锁越来越成为家的安全守护神,以及智能生活的得力助手。…

Monodle centerNet3D 瑞芯微RKNN、地平线Horizon芯片部署、TensorRT部署

一直想做一点3D目标检测,先来一篇单目3D目标检测Monodle(基于centernet的),训练代码参考官方【代码】,这里只讲讲如何部署。 模型和完整仿真测试代码,放在github上参考链接【模型和完整代码】。 1 模型训练…

Creating Server TCP listening socket *:6379: listen: Unknown error

错误: 解决方法: 在redis安装路径中打开cmd命令行窗口,输入 E:\Redis-x64-3.2.100>redis-server ./redis.windows.conf结果:

智慧校园学工管理系统的部署

学工体系思政服务该怎么规划建造?思政作为高校育人的中心使命,在做到让学生健康高兴生长的一起,也应满意学生生长成才的各类需求。使用技术为学生供给优质的信息化服务,是其间的有效途径。大数据让个性化教育成为可能,…

Python函数、类和方法

大家好,当涉及到编写可维护、可扩展且易于测试的代码时,Python提供了一些强大的工具和概念,其中包括函数、类和方法。这些是Python编程中的核心要素,可以帮助我们构建高效的测试框架和可靠的测试用例。 本文将探讨Python中的函数、…

Swin Transformer 笔记与理解

目录 解决什么问题基本结构理解 解决什么问题 传统的transformer处理于长序列需要非常大的计算量,而且很慢。且传统的transformer虽然的全局信息的获取上有着很好的效果,但是在局部信息的获取上就没有那么强了。Swim transformer的主要的贡献就是使用分…

LLM 大模型学习必知必会系列(十):基于AgentFabric实现交互式智能体应用,Agent实战

LLM 大模型学习必知必会系列(十):基于AgentFabric实现交互式智能体应用,Agent实战 0.前言 **Modelscope **是一个交互式智能体应用基于ModelScope-Agent,用于方便地创建针对各种现实应用量身定制智能体,目前已经在生产级别落地。AgentFabri…

Java输入与输出详解

Java输入和输出 前言一、Java打印Hello World二、输出到控制台基本语法代码示例格式化字符串 三、从键盘输入读入一个字符正确写法 使用 Scanner 读取字符串/整数/浮点数使用 Scanner 循环读取 N 个数字 前言 推荐一个网站给想要了解或者学习人工智能知识的读者,这…

嵌入式智能硬件茶杯垫的设计与实现方案

iCupBox简介 这是一款智能杯垫产品,基于GTD时间管理理念设计,目的是提醒人们专心工作和及时喝水休息,提高工作效率。 https://gitee.com/jiangtao008/iCupBox 开原许可协议:MIT 项目分为客户端APP和杯垫固件系统: 客户端APP,使用QML开发,集成GTD时间管理方法,与杯垫固…

QQ技术导航源码附带交易系统

网站功能 QQ登录 友联自助交换 友情链接交易功能 多功能搜索 ico小图标本地化 网站图片本地化 蜘蛛日志 文章评论 网站评论 自助链接匿名提交站点,添加友链访问网站自动审核通过 VIP 会员等级 VIP 付费升级 单个文章或者站点付费快审 多背景图片可自定义背景图片…

Web Server项目实战2-Linux上的五种IO模型

上一节内容的补充:I/O多路复用是同步的,只有调用某些API才是异步的 Unix/Linux上的五种IO模型 a.阻塞 blocking 调用者调用了某个函数,等待这个函数返回,期间什么也不做,不停地去检查这个函数有没有返回&#xff0c…

【算法】二分算法——寻找峰值

题解:寻找峰值(二分算法) 目录 1.题目2.暴力求解3.二分算法4.总结 1.题目 题目链接:LINK 2.暴力求解 暴力求解的思路很简单,这个数组的形状无非就三种: 一直上升下降(这里包含先下降后上升)先升后降 总结一下规律&#xff1…

详解CSS(二)

目录 1.背景属性 1.1背景颜色 1.2背景图片 1.3背景平铺 1.4背景位置 1.5背景尺寸 2.圆角矩形 3.元素的显示模式 3.1行内元素/内联元素(Inline element) 3.2块级元素(Block-level element) 3.3行内块元素(In…

一键自动回复,提升客服效率,解锁销售新高度

在快速迭代的跨境电商时代,效率与顾客体验是决定商家能否脱颖而出的关键要素。作为一款专为跨境电商设计的全能管理工具,现我们已全面升级,与俄罗斯头部电商平台Ozon深度整合,推出自动回复功能,旨在帮助卖家实现客服管…

1.Nacos 入门与实战(Spring Cloud)

1.Nacos 入门与实战 1.什么是 Nacos?1.1 Nacos 功能1.1.1 配置中心1.1.2 注册中心 1.2 Nacos 优点 2.Nacos 基本使用2.1 Nacos 部署安装2.1.1 部署方式2.1.2 安装并启动2.2.3 配置数据源2.2.4 开启控制台授权登录(可选) 2.2 配置中心使用2.2.1 创建配置…