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

Spotfire中筛选任务时控制均值线与控制线显示的Python脚本需求

实现Spotfire折线图控制线的条件显示(单任务时显示)

嘿,刚上手Python脚本就能折腾Spotfire的自定义交互,已经很厉害了!针对你要实现的「仅选中单个任务时显示均值线、上下控制线,多选/未选时隐藏」的需求,我给你梳理了具体的实现步骤,都是Spotfire里常用的IronPython脚本逻辑:

核心思路

通过监控任务筛选器的选中项数量,用文档属性存储这个数量,再给控制线绑定基于该属性的可见性规则,就能实现动态显示/隐藏的效果。


步骤1:创建存储选中数量的文档属性

  1. 点击Spotfire顶部菜单栏的「工具」→「文档属性」
  2. 点击「添加」,创建一个整数类型的属性,命名为SelectedTaskCount,默认值设为0

步骤2:编写筛选器触发的脚本(更新选中数量)

我们需要让筛选器每次变化时,自动计算选中的任务数量并更新到文档属性里:

  1. 找到页面上的「任务筛选器」,右键点击筛选器→「编辑筛选器」
  2. 切换到「高级」标签页,在「筛选器改变时运行脚本」的输入框里粘贴以下代码(记得替换注释里的内容):
from Spotfire.Dxp.Application.Filters import ListFilter

# 替换成你实际的任务列名称(筛选器对应的列)
target_filter = Application.Document.ActivePageReference.FilterPanel.Filters["任务列名称"]

# 计算选中的任务数量
if isinstance(target_filter, ListFilter):
    # 列表筛选器的选中项数量
    selected_count = len(target_filter.SelectedItems)
else:
    # 若为其他类型筛选器(比如单选下拉),可根据实际情况调整
    selected_count = 1 if target_filter.SelectedItem is not None else 0

# 更新文档属性
Application.Document.Properties["SelectedTaskCount"] = selected_count

步骤3:给控制线绑定可见性规则

现在要让三条线只在SelectedTaskCount=1时显示:

  1. 选中折线图,打开右侧的「属性」面板→「线条与曲线」
  2. 选中均值线(或上/下控制线),找到「可见性」选项,选择「使用表达式」
  3. 在表达式输入框里填写:[SelectedTaskCount] = 1
  4. 对另外两条控制线重复上述操作

小提示

  • 如果你的筛选器不是ListFilter(比如是复选框以外的类型),可以根据筛选器的实际类型调整脚本里的判断逻辑
  • 测试时可以先选中单个任务,确认线条显示;再多选或清空筛选器,检查线条是否隐藏

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:42:33