echarts图例的显示与隐藏

本文介绍如何在ECharts中实现动态控制图例显示的功能,通过在legend字段中添加selected属性,可设置部分图例默认隐藏,点击按钮切换显示状态。示例代码展示了如何设置背景色、字体样式等,并提供了动态改变selected值的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求

在图表加载的时候,默认只显示部分图例,只要图例显示部分,对应的柱图或者折线图也只显示对应的。点击一个按钮显示剩余的图例,或者点击置灰的图例让恢复显示。

核心

在legend里面的字段加个selected,然后设置不需要显示的数据标题:
官方案例为例:

selected: {'邮件营销': false, '联盟广告': false}

使用按钮切换可以动态改变selected里面对象的键值即可:

this.options.legend.selected = {'邮件营销': false, '联盟广告': false};

效果

  1. 默认不展示折线
    在这里插入图片描述

  2. 代码

    option = {
        backgroundColor: '#031A32',
        tooltip: {
            trigger: "axis",
            axisPointer: {
                type: "shadow",
                label: {
                    show: true
                }
            }
        },
        grid: {
            left: "4%",
            top: "18%",
            right: "5%",
            bottom: "22%"
        },
        legend: {
            data: ["昨日总人数", "今日实时人数", "昨日使用率"],
            top: "4%",
            textStyle: {
                color: "#1FC3CE",
                fontSize: 14
            },
            selected: {'昨日使用率': false} // 不需要显示的设置为false
        },
        xAxis: {
            data: [
                "会议室1",
                "会议室2",
                "会议室3",
                "会议室4",
                "会议室5",
                "会议室6",
                "会议室7",
                "会议室8",
                "会议室9",
                "会议室10",
                "会议室11",
                "会议室12"
            ],
            axisLine: {
                show: true, //隐藏X轴轴线
                lineStyle: {
                    color: "#3d5269",
                    width: 1
                }
            },
            axisTick: {
                show: true, //隐藏X轴刻度
                alignWithLabel: true
            },
            axisLabel: {
                show: true,
                textStyle: {
                    color: "#396A87", //X轴文字颜色
                    fontSize: 14
                },
                interval: 0,
                rotate: 30
            }
        },
        yAxis: [{
                type: "value",
                name: "人数",
                nameTextStyle: {
                    color: "#396A87",
                    fontSize: 14
                },
                splitLine: {
                    show: true,
                    lineStyle: {
                        width: 1,
                        color: "#3d5269"
                    }
                },
                axisTick: {
                    show: false
                },
                axisLine: {
                    show: false
                },
                axisLabel: {
                    show: true,
                    textStyle: {
                        color: "#396A87",
                        fontSize: 14
                    }
                }
            },
            {
                type: "value",
                name: "使用率%",
                nameTextStyle: {
                    color: "#396A87",
                    fontSize: 14
                },
                position: "right",
                splitLine: {
                    show: false
                },
                axisTick: {
                    show: false
                },
                axisLine: {
                    show: false,
                    lineStyle: {
                        color: "#396A87",
                        width: 2
                    }
                },
                axisLabel: {
                    show: true,
                    formatter: "{value} %", //右侧Y轴文字显示
                    textStyle: {
                        color: "#396A87",
                        fontSize: 14
                    }
                }
            }
        ],
        series: [{
                name: "昨日总人数",
                type: "bar",
                barWidth: 18,
                itemStyle: {
                    normal: {
                        color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                                offset: 0,
                                color: "#00FFFF"
                            },
                            {
                                offset: 1,
                                color: "#0080FF"
                            }
                        ])
                    }
                },
                data: [24, 45, 43, 35, 76, 154, 86, 42, 68, 97, 24, 34]
            },
            {
                name: "今日实时人数",
                type: "bar",
                barWidth: 18,
                itemStyle: {
                    normal: {
                        color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                                offset: 0,
                                color: "#E29052"
                            },
                            {
                                offset: 1,
                                color: "#FA5A53"
                            }
                        ])
                    }
                },
                data: [133, 23, 114, 67, 89, 35, 67, 96, 90, 46, 75, 85]
            },
            {
                name: "昨日使用率",
                type: "line",
                yAxisIndex: 1, //使用的 y 轴的 index,在单个图表实例中存在多个 y轴的时候有用
                showAllSymbol: true, //显示所有图形。
                symbol: "circle", //标记的图形为实心圆
                symbolSize: 6, //标记的大小
                itemStyle: {
                    //折线拐点标志的样式
                    color: "#26D9FF",
                    borderColor: "#26D9FF",
                    width: 2,
                    shadowColor: "#26D9FF",
                    shadowBlur: 2
                },
                lineStyle: {
                    color: "#26D9FF",
                    width: 2,
                    shadowBlur: 2
                },
                data: [4.2, 3.5, 2.9, 7.8, 2, 3, 4.2, 3.5, 2.9, 7.8, 2, 3]
            }
        ]
    }
    
  3. 点击显示效果
    在这里插入图片描述

  4. 也可以动态改变selected的值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值