Apache Superset 4.0.0:如何根据仪表板过滤器动态修改图表标题?
Apache Superset 4.0.0 动态图表标题实现方法
在Superset 4.0.0中,你可以通过以下方式实现图表标题随全局过滤器动态变更:
基础单过滤器场景
针对日期过滤器的情况,直接在图表标题中使用Jinja模板结合filter_values()变量做条件判断:
{% if filter_values('date_range') %}每日会议数量{% else %}会议数量{% endif %}
- 这里
date_range是你全局过滤器的参数名称(不是显示名称,可在过滤器配置里查看),如果过滤器绑定的是数据集里的date字段,就用filter_values('date')。 filter_values()会返回当前过滤器选中的值数组,只要数组不为空,就判定为过滤器已生效,切换标题文本。
多过滤器组合场景
如果有多个全局过滤器(比如日期+部门),可以先定义变量再做组合判断:
{% set selected_date = filter_values('date_range') %} {% set selected_dept = filter_values('department') %} {% if selected_date and selected_dept %} {{ selected_dept[0] }}部门每日会议数量 {% elif selected_date %} 每日会议数量 {% elif selected_dept %} {{ selected_dept[0] }}部门会议数量 {% else %} 会议数量 {% endif %}
- 若过滤器支持多选,可将
selected_dept[0]替换为selected_dept | join(', '),把选中的多个值拼接显示。
关键注意事项
- 确保图表的数据源已正确关联全局过滤器:全局过滤器的字段要和图表数据集里的字段匹配,或者通过仪表板的过滤器关联设置绑定到图表。
- 对于SQL Lab生成的图表,要在查询编辑页面勾选「启用Jinja模板」;拖拽式可视化的标题默认支持Jinja,无需额外配置。
- 修改标题后,切换过滤器时可能需要刷新图表或仪表板,确保模板渲染生效。
内容的提问来源于stack exchange,提问作者Cnkdl
相关产品推荐
相关产品推荐

