如何使用 Iron Python 在 Spotfire 上切换直线和曲线名称的可见性?
How To Toggle Lines & Curves Names Visibility On Spotfire With Iron Python?
我一直在尝试创建一个 IronPython 脚本来切换我的条形图水平线名称,但没有成功。
我想通过单击按钮实现此目的:
我目前使用的代码是:
from System.Drawing import Color
from Spotfire.Dxp.Application.Visuals import *
# vis parameter referencing an existing BarChart visualization
vis = vis.As[BarChart]()
# Read the document property with the toggle value (true/false)
Document.Properties['GenericToggleLineNames'] = not Document.Properties['GenericToggleLineNames']
#Loop through all the Lines & Curves collection
if Document.Properties['GenericToggleLineNames']:
for fm in vis.FittingModels:
if fm.Line.DisplayName == 'Defined Underload Limit':
fm.Line.CustomDisplayName = 'Defined Underload Limit'
elif fm.Line.DisplayName == 'Defined Warning Limit':
fm.Line.CustomDisplayName = 'Defined Warning Limit'
elif fm.Line.DisplayName == 'Defined Critical Limit':
fm.Line.CustomDisplayName = 'Defined Critical Limit'
else:
for fm in vis.FittingModels:
if fm.Line.DisplayName == 'Defined Underload Limit':
fm.Line.CustomDisplayName = ''
elif fm.Line.DisplayName == 'Defined Warning Limit':
fm.Line.CustomDisplayName = ''
elif fm.Line.DisplayName == 'Defined Critical Limit':
fm.Line.CustomDisplayName = ''
但是,当我到达 "Show = true" 时,代码不会更改 CustomDisplayNames。
根据 Spotfire API,DisplayName 只提供了一个 get 方法,而
CustomDisplayName 同时提供 get 和 set.
有人知道如何创建这个切换吗?
我写了一篇关于如何执行此操作的博客 post。请到这里 -- https://datashoptalk.com/ironpython-in-spotfire-turning-lines-curves-on-and-off/。代码将根据您在页面上的内容而有所不同。如果您通过此 post.
得到正确答案,请点赞
我设法让它以一种可怕的方式工作。如果有人需要,会在这里分享,但是,我很乐意找到合适的方法。
尽管 Spotfire API documentation 提到
ReferenceCurve.DisplayName是一个只读的属性(只有get方法),好像是在更新CustomDisplayName的时候改变的。
考虑到这一点,我创建了另一组 IF,寻找 "new" DisplayName 并将其替换为旧的。
# Imports
from System.Drawing import Color
from Spotfire.Dxp.Application.Visuals import *
#Add a vis parameter referencing an existing LineChart visualization
vis = vis.As[BarChart]()
#Loop through all the Lines & Curves collection
Document.Properties['GenericVisualisationDescriptions'] = not Document.Properties['GenericVisualisationDescriptions']
if Document.Properties['GenericVisualisationDescriptions']:
for fm in vis.FittingModels:
if fm.Line.DisplayName == ' ':
fm.Line.CustomDisplayName = 'Defined Underload Limit'
elif fm.Line.DisplayName == ' ':
fm.Line.CustomDisplayName = 'Defined Warning Limit'
elif fm.Line.DisplayName == ' ':
fm.Line.CustomDisplayName = 'Defined Critical Limit'
else:
for fm in vis.FittingModels:
print fm.Line.DisplayName
print fm.Line.CustomDisplayName
if fm.Line.DisplayName == 'Defined Underload Limit':
fm.Line.CustomDisplayName = ' '
elif fm.Line.DisplayName == 'Defined Warning Limit':
fm.Line.CustomDisplayName = ' '
elif fm.Line.DisplayName == 'Defined Critical Limit':
fm.Line.CustomDisplayName = ' '
我一直在尝试创建一个 IronPython 脚本来切换我的条形图水平线名称,但没有成功。
我想通过单击按钮实现此目的:
我目前使用的代码是:
from System.Drawing import Color
from Spotfire.Dxp.Application.Visuals import *
# vis parameter referencing an existing BarChart visualization
vis = vis.As[BarChart]()
# Read the document property with the toggle value (true/false)
Document.Properties['GenericToggleLineNames'] = not Document.Properties['GenericToggleLineNames']
#Loop through all the Lines & Curves collection
if Document.Properties['GenericToggleLineNames']:
for fm in vis.FittingModels:
if fm.Line.DisplayName == 'Defined Underload Limit':
fm.Line.CustomDisplayName = 'Defined Underload Limit'
elif fm.Line.DisplayName == 'Defined Warning Limit':
fm.Line.CustomDisplayName = 'Defined Warning Limit'
elif fm.Line.DisplayName == 'Defined Critical Limit':
fm.Line.CustomDisplayName = 'Defined Critical Limit'
else:
for fm in vis.FittingModels:
if fm.Line.DisplayName == 'Defined Underload Limit':
fm.Line.CustomDisplayName = ''
elif fm.Line.DisplayName == 'Defined Warning Limit':
fm.Line.CustomDisplayName = ''
elif fm.Line.DisplayName == 'Defined Critical Limit':
fm.Line.CustomDisplayName = ''
但是,当我到达 "Show = true" 时,代码不会更改 CustomDisplayNames。
根据 Spotfire API,DisplayName 只提供了一个 get 方法,而 CustomDisplayName 同时提供 get 和 set.
有人知道如何创建这个切换吗?
我写了一篇关于如何执行此操作的博客 post。请到这里 -- https://datashoptalk.com/ironpython-in-spotfire-turning-lines-curves-on-and-off/。代码将根据您在页面上的内容而有所不同。如果您通过此 post.
得到正确答案,请点赞我设法让它以一种可怕的方式工作。如果有人需要,会在这里分享,但是,我很乐意找到合适的方法。
尽管 Spotfire API documentation 提到 ReferenceCurve.DisplayName是一个只读的属性(只有get方法),好像是在更新CustomDisplayName的时候改变的。
考虑到这一点,我创建了另一组 IF,寻找 "new" DisplayName 并将其替换为旧的。
# Imports
from System.Drawing import Color
from Spotfire.Dxp.Application.Visuals import *
#Add a vis parameter referencing an existing LineChart visualization
vis = vis.As[BarChart]()
#Loop through all the Lines & Curves collection
Document.Properties['GenericVisualisationDescriptions'] = not Document.Properties['GenericVisualisationDescriptions']
if Document.Properties['GenericVisualisationDescriptions']:
for fm in vis.FittingModels:
if fm.Line.DisplayName == ' ':
fm.Line.CustomDisplayName = 'Defined Underload Limit'
elif fm.Line.DisplayName == ' ':
fm.Line.CustomDisplayName = 'Defined Warning Limit'
elif fm.Line.DisplayName == ' ':
fm.Line.CustomDisplayName = 'Defined Critical Limit'
else:
for fm in vis.FittingModels:
print fm.Line.DisplayName
print fm.Line.CustomDisplayName
if fm.Line.DisplayName == 'Defined Underload Limit':
fm.Line.CustomDisplayName = ' '
elif fm.Line.DisplayName == 'Defined Warning Limit':
fm.Line.CustomDisplayName = ' '
elif fm.Line.DisplayName == 'Defined Critical Limit':
fm.Line.CustomDisplayName = ' '