如何在Spotfire中创建截至当前日期的Top10化合物箱线图
实现Spotfire截至日期Top10活性化合物箱线图的方法
1. 创建截至日期的排名计算列
添加新计算列(数据 > 添加列),命名为Top10_Rank_To_Date,输入表达式:
Rank([Potency],"desc", "dense") OVER (AllPrevious([Date_Collected]) + CurrentRow([Date_Collected]))
Rank(...):按Potency降序对化合物排名,"dense"参数避免排名跳号(比如并列第1的不会导致下一个排名直接到3)Over(...):窗口范围包含当前X轴日期及之前的所有数据,确保排名是截至该日期的全局排名
2. 配置箱线图的Y轴表达式
在箱线图的Y轴设置中,替换原有表达式为:
If([Top10_Rank_To_Date] <= 10, [Potency], NULL)
这个表达式会只保留每个日期对应的Top10化合物的Potency值,NULL值会被Spotfire自动排除在箱线统计(中位数、四分位、极值等)计算之外。
3. 验证逻辑
- 第一个日期的箱线仅包含当日化合物(若当日不足10个则全部纳入)
- 后续日期的箱线会包含截至该日期所有批次中Potency排名前10的化合物,完全匹配需求
替代方案(无需额外计算列)
如果不想创建计算列,可直接在Y轴表达式中嵌套排名逻辑:
If(Rank([Potency],"desc", "dense") OVER (AllPrevious([Date_Collected]) + CurrentRow([Date_Collected])) <= 10, [Potency], NULL)
效果与计算列方案一致,但计算列方式更便于后续排查和修改。
内容的提问来源于stack exchange,提问作者shireham
相关产品推荐
相关产品推荐

