我试图在Spotfire中创建一个按钮,它会将我的图表中的Y轴更改为从log到线性比例。我在图表中也有一条线从数据表中的列值绘制,因此当Y轴刻度发生变化时,我还需要将线更改为对数刻度。
以下是我想要更改的属性的图片:
以下是我到目前为止的代码片段:
#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')
感谢您的帮助!
答案 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]