treemap表达式中属性的语法-Spotfire分析师10.8

问题描述 投票:0回答:1

我正在尝试使用用户输入来创建树状图,以便在层次结构中选择列。我有三个(下拉)文档属性,分别称为treemap1,treemap2和treemap3,每个属性的值都是带有列名的字符串。我正在为层次结构轴而苦苦挣扎。如果我使用...

<${treemap1} NEST ${treemap2} NEST ${treemap3}>

...可视化效果很好。但是,我想为第二个和第三个控件添加一个“无”选项,但是当我这样做时,一旦将其中一个设置为“无”,该可视化效果将不会呈现并给出错误“该表达式在NEST之后无效...”。这是有道理的,因为[column] NEST null NEST null不是有效的表达式。因此,我想添加一个case语句来解决该问题,检查空值并相应地更改表达式。我已经尝试过各种排列方式:

<
case    
    when "${treemap2}" ="" and "${treemap3}" ="" then ${treemap1}
    when "${treemap2}" ="" then ${treemap1} NEST ${treemap3}
    when "${treemap3}" ="" then ${treemap1} NEST ${treemap2}
    else ${treemap1} NEST ${treemap2} NEST ${treemap3}
end
>

...但是它从不让我保存,总是返回“该表达式在第4行NEST之后无效”。我认为这是一个语法问题,但我遇到了麻烦。所以我的问题是1)我可以在分类轴上以这种方式使用case语句吗?2)如果是,为了使Spotfire接受它,需要更改哪些内容?

提前感谢...

spotfire treemap
1个回答
1
投票

[最好是添加3个按钮,每个按钮与一个将可视化作为参数的ironpython脚本相关联(我们将其称为vis)。

from Spotfire.Dxp.Application.Visuals import Treemap

vis.As[Treemap]().HierarchyAxis.Expression = "<${treemap1} NEST ${treemap2} NEST ${treemap3}>"

对其他两个对象执行相同的操作,并使用表达式<${treemap1} NEST ${treemap2}><${treemap1}>


通过将表达式设置为参数(我们称它为e),您甚至对于3个按钮都只有一个脚本:

from Spotfire.Dxp.Application.Visuals import Treemap

vis.As[Treemap]().HierarchyAxis.Expression = e
© www.soinside.com 2019 - 2024. All rights reserved.