如何以编程方式更改Spotfire中Column Values Line引用的列?

时间:2016-01-07 19:51:49

标签: ironpython spotfire

我试图在Spotfire中创建一个按钮,它会将我的图表中的Y轴更改为从log到线性比例。我在图表中也有一条线从数据表中的列值绘制,因此当Y轴刻度发生变化时,我还需要将线更改为对数刻度。

以下是我想要更改的属性的图片:

Here is a picture of the property I want to change

以下是我到目前为止的代码片段:

#import namespaces
from Spotfire.Dxp.Application.Visuals import VisualContent
from Spotfire.Dxp.Application.Visuals import AxisRange
from Spotfire.Dxp.Application.Visuals import FittingModels

#set variables
oil = oil_rate_time.As[VisualContent]()
islog = oil.YAxis.UseLogTransform

if islog:
    oil.YAxis.UseLogTransform = False
else:
    oil.YAxis.UseLogTransform = True

oil.ColumnValuesLine.YColumnReference

最后一行给出了一个错误,即ColumnValuesLine不是ScatterPlot对象中的属性。

实际错误文字: (Traceback(最近的呼叫最后):   文件" Spotfire.Dxp.Application.ScriptSupport",行未知,在ExecuteForDebugging中   文件"",第25行,in AttributeError:' ScatterPlot'对象没有属性' ColumnValuesLine')

有人知道为什么尽管在Spotfire API中没有找到ColumnValuesLine吗?

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

如果有人想知道答案,我就是这样做的:

#import namespaces
from Spotfire.Dxp.Application.Visuals import *
from Spotfire.Dxp.Data import *

#set variables
oil = oil_rate_time.As[ScatterPlot]()
islog = oil.YAxis.TransformType
tctable = tc_Table

if islog == AxisTransformType.None:
    oil.YAxis.TransformType = AxisTransformType.Log10
    oil.FittingModels[0].YColumnReference = tctable.Columns[18]
else:
    oil.YAxis.TransformType = AxisTransformType.None
    oil.FittingModels[0].YColumnReference = tctable.Columns[9]