You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ApexChart如何设置初始仅选中单个图例及点击图例仅展示对应系列

ApexChart 单图例选中功能实现方案

需求1:初始化仅默认选中单个图例项

ApexChart 内置了legend.itemSelection.default配置项,值为与数据系列顺序一一对应的布尔数组,数组元素为true时对应图例默认选中、系列展示,为false时对应图例默认未选中、系列隐藏。
如果默认选中第一个系列,配置示例如下:

const options = {
  legend: {
    show: true, // 你已开启的图例配置
    itemSelection: {
      // 数组长度和你的series数组长度完全匹配,仅需要默认展示的系列位置设为true
      default: [true, false, false] 
    }
  },
  // 其他原有配置...
}

如果数据系列数量不固定,可以动态生成配置数组,比如默认选中第一个系列的通用写法:

default: new Array(series.length).fill(false).fill(true, 0, 1)

需求2:点击图例时仅展示当前点击的系列

首先关闭图例点击的默认切换逻辑,再通过chart.events.legendClick回调自定义点击逻辑即可,核心逻辑为点击某图例时,将所有系列设为隐藏,仅当前点击的系列设为展示。
完整配置示例:

const options = {
  legend: {
    show: true,
    onItemClick: {
      toggleDataSeries: false // 关闭默认切换逻辑
    },
    itemSelection: {
      default: new Array(series.length).fill(false).fill(true, 0, 1) // 初始化默认选中第一个
    }
  },
  chart: {
    type: 'line', // 替换为你实际使用的图表类型
    events: {
      legendClick: function (chartContext, seriesIndex) {
        // 生成仅当前点击系列为选中状态的配置数组
        const newSelection = new Array(chartContext.w.config.series.length).fill(false)
        newSelection[seriesIndex] = true
        // 更新图例选中状态和系列显隐
        chartContext.updateOptions({
          legend: {
            itemSelection: {
              default: newSelection
            }
          }
        })
      }
    }
  },
  // 其他原有配置:series、xaxis、yaxis等...
}

如果你使用的是Vue/React等框架封装的ApexChart组件,上述配置逻辑完全通用,直接传入组件的options属性即可。

内容的提问来源于stack exchange,提问作者Cezene

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 11:45:04