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

能否在Deneb中实现带可折叠下拉菜单的分层甘特图?

Deneb中实现顶层类别可折叠下拉菜单的方案

可以在Deneb中实现顶层类别的可折叠下拉菜单功能,以下是具体的实现思路和方法:

核心实现逻辑

利用Vega-Lite的参数(parameter)结合数据过滤来控制顶层类别的显示与隐藏,通过下拉菜单绑定参数值,实现选择式的"折叠/展开"效果。

具体步骤

  1. 定义下拉参数
    在spec的params字段中创建一个下拉选择参数,选项包含所有顶层类别,同时保留"全部展开"的选项:

    "params": [
      {
        "name": "selectedTopCat",
        "value": null,
        "bind": {
          "input": "select",
          "options": [null, "顶层类别1", "顶层类别2", "顶层类别3"],
          "label": "选择要展开的顶层类别:"
        }
      }
    ]
    
  2. 添加数据过滤规则
    在transform中添加过滤逻辑,当选择特定顶层类别时,仅显示该类别下的子项;选择"全部展开"时显示所有内容:

    "transform": [
      // 保留原有层级处理的transform(如flatten层级数据等)
      {
        "filter": "!selectedTopCat || datum.top_category === selectedTopCat"
      }
    ]
    
  3. 适配层级Y轴配置
    保留原有的层级Y轴编码(如使用y字段的分层定义),过滤后的数据会自动适配Y轴的层级显示,未被选中的顶层类别对应的子项会被隐藏,实现类似折叠的效果。

进阶优化

如果需要更灵活的多类别选择,可以将下拉参数改为多选控件,同时调整过滤逻辑为包含匹配:

"params": [
  {
    "name": "selectedTopCat",
    "value": [],
    "bind": {
      "input": "select",
      "options": ["顶层类别1", "顶层类别2", "顶层类别3"],
      "label": "选择要展开的顶层类别:",
      "multiple": true
    }
  }
],
"transform": [
  {
    "filter": "selectedTopCat.length === 0 || indexof(selectedTopCat, datum.top_category) > -1"
  }
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 20:13:10