echarts 图例组件legend配置

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.hqwc.cn/news/54777.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【css问题】flex布局中,子标签宽度超出父标签宽度,导致布局出现问题

场景&#xff1a;文章标题过长时&#xff0c;只显示一行&#xff0c;且多余的部分用省略号显示。 最终效果图&#xff1a; 实现时&#xff0c;flex布局&#xff0c;出现问题&#xff1a; 发现text-overflow: ellipsis不生效&#xff0c;省略符根本没有出现。 而且因为设置了 …

《MySQL高级篇》十五、其他数据库日志

文章目录 1. MySQL支持的日志1.1 日志类型1.2 日志的弊端 2. 慢查询日志(slow query log)3. 通用查询日志3.1 问题场景3.2 查看当前状态3.3 启动日志3.4 查看日志3.5 停止日志3.6 删除\刷新日志 4. 错误日志(error log)4.1 启动日志4.2 查看日志4.3 删除\刷新日志4.4 MySQL8.0新…

Python实现GA遗传算法优化BP神经网络回归模型(BP神经网络回归算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 遗传算法&#xff08;Genetic Algorithm&#xff0c;GA&#xff09;最早是由美国的 John holland于20世…

zabbix监控mysql容器主从同步状态并告警钉钉/企业微信

前言&#xff1a;被监控的主机已经安装和配置mysql主从同步&#xff0c;和zabbix-agent插件。 mysql创建主从同步&#xff1a;http://t.csdn.cn/P4MYq centos安装zabbix-agent2&#xff1a;http://t.csdn.cn/fx74i mysql主从同步&#xff0c;主要监控这2个参数指标&#xf…

用 docker 创建 jmeter 容器,能做性能测试?

我们都知道&#xff0c;jmeter 可以做接口测试&#xff0c;也可以用于性能测试&#xff0c;现在企业中性能测试也大多使用 jmeter。docker 是最近这些年流行起来的容器部署工具&#xff0c;可以创建一个容器&#xff0c;然后把项目放到容器中&#xff0c;就可以构建出一个独立的…

【神经网络手写数字识别-最全源码(pytorch)】

Torch安装的方法 学习方法 1.边用边学&#xff0c;torch只是一个工具&#xff0c;真正用&#xff0c;查的过程才是学习的过程2.直接就上案例就行&#xff0c;先来跑&#xff0c;遇到什么来解决什么 Mnist分类任务&#xff1a; 网络基本构建与训练方法&#xff0c;常用函数解析…

Qt 添加资源文件(添加图片)

第一步&#xff0c;先将要添加的资源文件&#xff08;图片等&#xff09;放入项目目录&#xff0c;如下&#xff1a; 第二步&#xff0c;如下图&#xff1a; 第三步&#xff0c;如下图&#xff1a; 第四步&#xff0c;如下图&#xff1a; 第五步&#xff0c;继续选择完成即…

ES6 - 对象新增的一些常用方法

文章目录 1&#xff0c;Object.is()2&#xff0c;Object.asign()3&#xff0c;Object.getOwnPropertyDescriptors()4&#xff0c;Object.setPrototypeOf()和getPrototypeOf()5&#xff0c;Object.keys()、values() 和 entries()6&#xff0c;Object.fromEntries()7&#xff0c;…

学习系统编程终章【多线程剩余知识】

引言&#xff1a; 北京时间&#xff1a;2023/8/3/19:21&#xff0c;刚刚将文章更新&#xff0c;是近期以来为数不多的一次早更&#xff0c;不然每次更文都要卡在12点左右&#xff0c;这是我们实现日更的一个好开端&#xff0c;再接再厉实现日更不是梦。最近失眠一直困扰着我&a…

参考RabbitMQ实现一个消息队列

文章目录 前言小小消息管家1.项目介绍2. 需求分析2.1 API2.2 消息应答2.3 网络通信协议设计 3. 开发环境4. 项目结构介绍4.1 配置信息 5. 项目演示 前言 消息队列的本质就是阻塞队列&#xff0c;它的最大用途就是用来实现生产者消费者模型&#xff0c;从而实现解耦合以及削峰填…

Java项目作业~ 创建基于Maven的Java项目,连接数据库,实现对站点信息的管理,即实现对站点的新增,修改,删除,查询操作

需求&#xff1a; 创建基于Maven的Java项目&#xff0c;连接数据库&#xff0c;实现对站点信息的管理&#xff0c;即实现对站点的新增&#xff0c;修改&#xff0c;删除&#xff0c;查询操作。 以下是站点表的建表语句&#xff1a; CREATE TABLE websites (id int(11) NOT N…

外卖多门店小程序开源版开发

外卖多门店小程序开源版开发 外卖多门店小程序开源版的开发可以按照以下步骤进行&#xff1a; 确定需求&#xff1a;明确外卖多门店小程序的功能和特点&#xff0c;包括用户注册登录、浏览菜单、下单支付、订单管理等。技术选型&#xff1a;选择适合开发小程序的技术框架&…