echarts 图例组件legend配置

news2024/11/16 16:00:35

legend 图例组件展示不同系列的图表类型标记、颜色、和名称。可以通过点击来控制哪个系列不展示。对于饼图来说,控制哪个数据不展示。

$> echarts@5.4.0

简单画一个饼图作为示例,设置legend:{show:true}展示图例。

const options = {
  legend: {
    show: true,
  },
  series: [
    {
      name: "销量",
      type: "pie",
      center: ["50%", "30%"],
      radius: "40%",
      data: [
        {
          value: 45,
          name: "衬衫",
        },
        {
          value: 65,
          name: "羊毛衫",
        },
        {
          value: 75,
          name: "雪纺衫",
        },
        {
          value: 95,
          name: "裤子",
        },
        {
          value: 145,
          name: "高跟鞋",
        },
      ],
    },
  ],
};

在这里插入图片描述

通过left\top\right\bottom来调整图例的位置

设置图例位置时,注意饼图的位置,不要被覆盖到。

可以设置百分占比10%,也可以设置数值20

const options = {
  legend: {
    show: true,
    bottom: 0,
  },
  // ...
};

而对于left还可以设置为left\center\righttop可以设置为top\middle\bottom

const options = {
  legend: {
    show: true,
    left: "center",
    top: "middle",
  },
  // ...
};

在这里插入图片描述

orient 用来设置图例的朝向

默认方向为水平horizontal。可以设置垂直方向vertical,设置left:right让它置于右侧

const options = {
  legend: {
    show: true,
    left: "right",
    top: "middle",
    orient: "vertical",
  },
  //...
};

在这里插入图片描述

可以看到图例在右侧了,标记图形和文本方式是默认对齐,也会由组件的位置和orient决定,即left:rightorient: vertical时,图例会在右侧

也可以通过align设置对齐方式,可选值为auto\left\right

const options = {
  legend: {
    show: true,
    left: "right",
    top: "middle",
    orient: "vertical",
    align: "left",
  },
  // ...
};

itemWidth\itemHeight设置图例图形的大小

默认的图形大小itemWidth:25,itemHeight:14,长方形。设置为正方形展示

const options = {
  legend: {
    show: true,
    // ...
    itemWidth: 10,
    itemHeight: 10,
  },
  // ...
};

通过itemGap设置图例之间的间距,默认为10

const options = {
  legend: {
    show: true,
    // ...
    itemWidth: 10,
    itemHeight: 10,
    itemGap: 20,
  },
  // ...
};

在这里插入图片描述

通过icon设置图形的类型,默认为roundRect,可选值

  • circle\rect\roundRect\triangle\diamond\pin\arrow\none - 圆、矩形、圆角矩形、三角形、菱形、水滴形、箭头
  • image://${url}设置为图片,可以是图片路径,也可以是 dataURIbase64
  • path://设置任意矢量路径
const options = {
  legend: {
    show: true,
    // ...
    itemWidth: 20,
    itemHeight: 20,
    itemGap: 20,
    icon: "path://M 200 100 L 300 100 L 200 400 L 300 500 z",
  },
  // ...
};

在这里插入图片描述

可以通过itemStyle设置图形样式,一般不会设置,默认继承系列里的样式。

可以设置颜色color、边框border、阴影shandow等。

const options = {
  legend: {
    show: true,
    // ...
    itemWidth: 20,
    itemHeight: 20,
    itemGap: 20,
    icon: "path://M 200 100 L 300 100 L 200 400 L 300 500 z",
    itemStyle: {
      color: "red",
    },
  },
  // ...
};

当自定义图例图形时,一些图形的样式设置不会影响到自定义图形。

formatter来格式化图例文本

格式化图例文本,可以通过字符串模板和回调函数处理。都只有一个变量name可供使用

不支持 html 渲染,所以有很多限制。

const options = {
  legend: {
    show: true,
    // ...
    formatter: "hello {name}",
  },
  // ...
};

回调函数可以通过查找name的方式,找到数据项,渲染数值或其他内容.

const options = {
  legend: {
    show: true,
    // ...
    formatter(name) {
      let info = $this.data.find((item) => item.name == name);

      return `${name}\r${info.value}`;
    },
  },
  // ...
};

通过textStyle文本样式,包括颜色、字体、文本块边框、文本块阴影、文字块背景色、文本描边、文本阴影。

const options = {
  legend: {
    show: true,
    // ...
    formatter(name) {
      let info = $this.data.find((item) => item.name == name);

      return `${name}\r${info.value}`;
    },
    textStyle: {
      color: "green",
      borderWidth: 1,
      borderColor: "#000",
      textBorderWidth: 2,
      textBorderColor: "red",
    },
  },
  // ...
};

在这里插入图片描述

通过rich属性,自定义富文本样式,可以设置分割文字块设置不同的样式。

const options = {
  legend: {
    show: true,
    // ...
    formatter(name) {
      let info = $this.data.find((item) => item.name == name);

      return `{name|${name}}\r {value|${info.value}}`;
    },
    textStyle: {
      width: 300,
      rich: {
        name: {
          color: "red",
        },
        value: {
          color: "green",
          fontSize: 18,
        },
      },
    },
  },
  // ...
};

在这里插入图片描述

对于 rich 富文本,可以设置每一块文字的宽度,不生效时注意版本,可以设置textStyle.width尝试。

const options = {
  legend: {
    show: true,
    // ...
    formatter(name) {
      let info = $this.data.find((item) => item.name == name);

      return `{name|${name}}\r {value|${info.value}}`;
    },
    textStyle: {
      width: 300,
      rich: {
        name: {
          color: "red",
          width: 50,
        },
        value: {
          color: "green",
          fontSize: 18,
        },
      },
    },
  },
  // ...
};

在这里插入图片描述

data定义图例数据

默认的图例数据会从系列中获取,如果需要设置不同的图例样式或者不需要展示某个系列图例则可设置数据。

图例的数据字段name必须是系列中的系列名称或数据名,测试不展示最后一项高跟鞋.并设置数据名为雪纺衫的图例图形为pin

const options = {
  legend: {
    show: true,
    // ...
    data: [
      {
        name: "衬衫",
      },
      {
        name: "羊毛衫",
      },
      {
        name: "雪纺衫",
        icon: "pin",
      },
      {
        name: "裤子",
      },
    ],
  },
  // ...
};

在这里插入图片描述

type:scroll设置滚动翻页的图例

图例比较多时,可能就放不下了,除了控制展示图例数。可以设置滚动图例,增加数据超过图表高度。

const options = {
  legend: {
    type: "scroll",
    show: true,
    left: "right",
    top: 50,
    height: "60%",
    orient: "vertical",
    // ...
  },
};

在这里插入图片描述

通过设置属性top: 50, height: "60%",调整图例的位置。

通过以下属性控制图例的样式,包括翻页按钮位置、翻页信息数据格式、翻页图标、翻页信息文字样式

  • pageFormatter 翻页信息显示格式,可用变量current/total当前页、总数
  • pageTextStyle 翻页信息中文本的样式设置
  • ...

配置tooltip显示图例文本

tooltip配置同全局的 tooltip 配置项。设置属性show: true,展示图例文本的 tooltip 提示。

const options = {
  legend: {
    show: true,
    // ...
    tooltip: {
      show: true,
    },
  },
  tooltip: {
    show: true,
  },
};

受全局tooltip配置属性影响,全局 tooltip 必须配置为show:true。图例中的 tooltip 才会生效。
在这里插入图片描述

针对图例文本过长时,做配置截断处理。然后通过tooltip展示所有内容,设置 textStylewidth文本宽度,超出后样式overflow: "truncate"

const options = {
  legend: {
    show: true,
    // ...
    tooltip: {
      show: true,
    },
    textStyle: {
      width: 80,
      overflow: "truncate",
    },
  },
  tooltip: {
    show: true,
    confine: true,
  },
};

为了防止 tooltip 超出图表被遮挡,可以设置confine:true将 tooltip 限制在图表内。

在这里插入图片描述

也可以通过formatter格式化文本,手动截断文本。echarts.format.truncateText()方法可以裁剪文本,参数:包括文本、内容宽度、字体样式、省略符内容、文本样式配置

这是方法的源代码贴在这

function truncateText(text, containerWidth, font, ellipsis, options) {
  if (!containerWidth) {
    return "";
  }
  var textLines = (text + "").split("\n");
  options = prepareTruncateOptions(containerWidth, font, ellipsis, options);
  for (var i = 0, len = textLines.length; i < len; i++) {
    textLines[i] = truncateSingleLine(textLines[i], options);
  }
  return textLines.join("\n");
}

多个图例legend配置

支持传入数组对象展示多个图例。

const options = {
  legend: [
    { show: true },
    {
      show: true,
      // ...
    },
  ],
};

在这里插入图片描述

这样当图例很多时,又不想要滚动,就可以使用多个图例方式,放置不同的位置。通过legend.data分配每一个图例要展示的数据

const options = {
  legend: [
    {
      show: true,
      left: "left",
      top: 50,
      height: "60%",
      orient: "vertical",
      align: "right",
      // ...
    },
    {
      show: true,
      left: "right",
      top: 50,
      height: "60%",
      orient: "vertical",
      align: "left",
      // ...
    },
  ],
};

在这里插入图片描述

主要是为了做一个引导说明,通过legend可以实现哪些功能,详细查看文档配置。
Echarts - legend

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

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

相关文章

WMS仓库管理系统研发规划说明

01 产品背景 1.1 背景概述 aboss WMS东南亚仓库管理系统是一个基于BigSeller系统的使用基础上&#xff0c;加上多仓库的解决思路&#xff0c;解决入库业务、出库业务、仓库调拨、库存调拨和虚仓管理等功能&#xff0c;对批次管理、物料对应、库存盘点、质检管理、虚仓管理和即…

Mac与windows传文件(超过4G且速度超快,非共享)

MAC与Windows文件互传 背景 尝试了网上的一些方法&#xff0c;诸如设置共享文件夹方法等&#xff0c;但是实际使用中感觉效果一般&#xff0c;对于一些小的文件共同编辑速度还可以。但是在备份或者传递一些较大文件或者很多细小文件的时候就有点捉襟见肘了。制作了一个MAC可读…

规划模型Matlab代码

文章目录 数学规划定义一般形式分类 1.线性规划(linear programming)2.非线性规划(nonlinear programming)3. 整数规划(integer programming)4. 0-1规划(0-1 programming)5. 最大最小化模型6. 多目标规划模型7.敏感性分析&#xff08;对权重&#xff09;[例题] 数学规划定义 数…

基于SSM试题库管理系统

试题库管理系统(基于SSM) 运行环境&#xff1a;JDK 1.8 MySQL 5.7 Tomcat 8.0.53 编码集&#xff1a;UTF-8 IDE&#xff1a;eclipse 4.8.0 数据库 库名&#xff1a; 用户名&#xff1a;root 密码&#xff1a;admin 登录界面&#xff1a; 学生界面&#xff1a; 教师界面…

C++ ------ new关键字和delete关键字

文章目录 C/C内存分布C内存管理方式 operator new 与 operator delete 函数new和delete的实现原理内置类型自定义类型 定位new表达式 C/C内存分布 我们来看下面的一个题目&#xff1a; int globalVar 1; static int staticGlobalVar 1; void Test() {static int staticVar …

使用强化学习破解迷宫实战

大家好&#xff0c;本文将实现一种强化学习算法来解决迷宫问题&#xff0c;并完成以下步骤&#xff1a;创建迷宫环境、定义迷宫类&#xff0c;以及使用值迭代算法&#xff08;Value Iteration algorithm&#xff09;找到穿越迷宫的最优策略。为了使这一过程可视化&#xff0c;使…

Stable Diffusion系列课程二:ControlNet

AUTOMATIC1111/stable-diffusion-webui参考B站Nenly视频《零基础学会Stable Diffusion》、视频课件推荐网站&#xff1a;stable-diffusion-art、Civitai&#xff08;魔法&#xff09; 、libilibi、AI艺术天堂推荐Stable Diffusion整合资料&#xff1a; NovelAI资源整合、《AI绘…

Flowable-网关-并行网关

目录 定义图形标记XML内容使用示例视频教程 定义 并行网关能在一个流程里用来对并发进行建模处理&#xff0c;它能把单条线路拆分成多个路径并行执 行&#xff0c;或者将多个路径合并处理。在一个流程模型里引入并发最直接的网关就是并行网关&#xff0c;它基于进 入和外出顺序…

回归预测 | MATLAB实现基于SVM-RFE-BP支持向量机递归特征消除特征选择算法结合BP神经网络的多输入单输出回归预测

回归预测 | MATLAB实现基于SVM-RFE-BP支持向量机递归特征消除特征选择算法结合BP神经网络的多输入单输出回归预测 目录 回归预测 | MATLAB实现基于SVM-RFE-BP支持向量机递归特征消除特征选择算法结合BP神经网络的多输入单输出回归预测预测效果基本介绍研究内容程序设计参考资料…

Android Studio中使用cmake开发JNI实战

JNI学习大纲 一、JNI编程入门 二、Android Studio中使用cmake开发JNI实战 第一章节我们介绍了JNI的开发步骤&#xff0c;那这一章节我们就开始在Android Studio中实战一下吧&#xff0c;Lets Start。 1. Android Studio中安装CMake插件 AS中菜单栏选择Tools>SDK Manager在…

Servlet是什么和创建、配置第一个servlet

Servlet是什么和创建、配置第一个servlet servlet是什么 2、创建servlet 方式一&#xff1a; 方式二&#xff1a; 方式三&#xff1a;

vscode中无法使用git解决方案

1 首先查看git安装目录 where git 2 找到bash.exe 的路径 比如&#xff1a;C:/Users/Wangzd/AppData/Local/Programs/Git/bin/bash 3 找到vscode的配置项setting.json 4 添加 "terminal.integrated.shell.windowns": "C:/Users/Wangzd/AppData/Local/Pr…

Python如何解决Amazon亚马逊“图文验证码”识别(6)

前言 本文是该专栏的第55篇,后面会持续分享python爬虫干货知识,记得关注。 在本专栏前面,笔者有详细介绍多种登录验证码识别方法,感兴趣的同学可往前翻阅。而本文,笔者将单独详细介绍亚马逊Amazon的图文识别验证码的解决方法。 如上图所示,访问或请求频次达到一定程度之…

IPv6地址分类,EUI-64转换规则

1、可聚合的单全球单播地址Global Unique Address&#xff1a; Aggregate global unicast address&#xff0c;前3位是001&#xff0c;即2000::/3&#xff0c;目前IANA已经将一部分可聚合全球单播进行了专门使用&#xff0c;如&#xff1a;2001::/16用于IPV6互联网&#xff0c;…

深挖 Threads App 帖子布局,我进一步加深了对CSS网格布局的理解

当我遇到一个新产品时&#xff0c;我首先想到的是他们如何实现CSS。当我遇到Meta的Threads时也不例外。我很快就探索了移动应用程序&#xff0c;并注意到我可以在网页上预览公共帖子。 这为我提供了一个深入挖掘的机会。我发现了一些有趣的发现&#xff0c;我将在本文中讨论。 …

Docker相关命令与入门

1. Docker 命令 # centos 7 systemctl start docker # 启动服务 systemctl stop docker systemctl restart docker # 重启服务 systemctl status docker systemctl enable docker # 开机自启动1.1 镜像相关的命令 # 查看镜像 docker images docker images -q # 查看…

深度学习:探究Tensor和Numpy

目录 引言 1 pytorch中Tensor 1.1 什么是Tensor 1.2 为什么需要Tensor 1.3 如何创建Tensor 1.3.1 从已有其他数据结构转化创建为Tensor 1.3.2 随机初始化一个Tensor 1.3.3 从已保存文件加载一个Tensor 1.4 Tensor的特性 1.4.1 丰富的常用函数操作 1.4.2 灵活的dtype和…

使用TensorBoard进行可视化

1. TensorBoard介绍 TensorBoard是TensorFlow推出的可视化工具&#xff0c;可以可视化模型结构、跟踪并以表格形式显示模型指标。 TensorBoard的使用包括两个步骤&#xff1a; 在代码中设置TensorBoard&#xff0c;在训练的过程中将会根据设置产生日志文件在浏览器中可视化该…

启动RocketMQ报错

说明&#xff1a;启动RocketMQ消费者时&#xff0c;报以下错误&#xff1a;java.lang.IllegalStateException&#xff1a;Failed to start RocketMQ push consumer. 解决&#xff1a;看下所有的监听器类&#xff0c;检查是不是有相同的消费者组名&#xff0c;注释掉其中一个即可…

文心一言 VS 讯飞星火 VS chatgpt (71)-- 算法导论7.1 1题

参照图 7-1的方法&#xff0c;说明 PARTITION在数组 A(13&#xff0c;19&#xff0c;9&#xff0c;5&#xff0c;12&#xff0c;8&#xff0c;7&#xff0c;4&#xff0c;21&#xff0c;2&#xff0c;6&#xff0c;11)上的操作过程。 文心一言&#xff1a; PARTITION 是一种常…