如何读取和更新lineplot/dataplot的lowlimit和highlimit值?

How to read and update the lowlimit and highlimit value of lineplot/dataplot?

我尝试写一个代码,可以读取改变linePlot/dataPlot的highlimit值(Y轴的最高值)。如下所示,它不起作用。貌似我们不能通过“number highlimit= imgdisp.linePlotImageDisplaySetContrastLimits(highlimit)”读取线图的上限值,如何从线图中读取这个值?谢谢

number linelen=len(headerline)
        number i, nocommas=0
        for(i=0; i<linelen; i++)
            {
                string thischar=mid(headerline, i, 1)
                if(asc(thischar)==44) nocommas=nocommas+1 // found a comma
            }

        number xsize, ysize
        getsize(array, xsize, ysize)    
        image dataplot=realimage("", 4, xsize,1)
        showimage(dataplot)
        setname(dataplot, imgname)
        imagedisplay imgdisp=dataplot.imagegetimagedisplay(0)               
        number highlimit= imgdisp.linePlotImageDisplaySetContrastLimits(highlimit)
                                if( highlimit<50){imgdisp.linePlotImageDisplaySetContrastLimits( 0, 400)
imgdisp.LinePlotImageDisplaySetDoAutoSurvey( 0, 0 )} 

这里有几件事:

1)

通常,每个 "Set" 命令也有相应的 "Get" 命令。因此,读取当前显示限制的脚本命令就是

linePlotImageDisplayGetContrastLimits()

2)

设置对比度限制仅在自动测量关闭时有效。在 设置限制之前,您必须先将其关闭。 (如果您先设置限制,它们会立即被调查中的值替换,因此您看不到任何效果。)

3)

我不确定你真正想要什么set/get。是要获取数据的最大,还是显示限制?

最大值由max( )简单得到。

DisplayLimits 定义 y 轴上的范围,即它们设置您也可以在显示属性中指定的值,如下所示,它们独立于您在数据中的值:

显示限制设置为 0 - 500。(最大数据值 = 500)

显示限制设置为 0 - 1000。(最大数据值 = 500)

显示属性对话框。

下面是一些如何设置和读取显示限制的示例代码:

image spec := RealImage( "", 4, 500 ) 
spec = 20 + random() * icol
spec.ShowImage()

number maxV = max(spec)
imageDisplay LPID = spec.ImageGetImageDisplay(0)
LPID.LinePlotImageDisplaySetDoAutoSurvey( 0, 0 )        // switch survey off
LPID.LinePlotImageDisplaySetContrastLimits( 0, maxV*2 ) // Set the display

number lowL, highL
LPID.LinePlotImageDisplayGetContrastLimits( lowL, highL )
Result( "\n Maximum value in data:" + maxV )
Result( "\n Data display range:" + lowL + " to " + highL )