1

linePlot/dataPlot の上限値 (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 )} 
4

1 に答える 1

1

ここでいくつかのこと:

1)

通常、各「Set」コマンドには、対応する「Get」コマンドもあります。したがって、現在の表示制限を読み取るスクリプト コマンドは次のとおりです。

linePlotImageDisplayGetContrastLimits()

2)

コントラスト制限の設定は、自動調査がオフになっている場合にのみ機能します。制限を設定する前に、スイッチをオフにする必要があります。(最初に制限を設定すると、すぐに調査の値に置き換えられるため、効果はありません。)

3)

本当に何を設定/取得したいのかわかりません。データの最大を取得しますか?それとも表示制限を取得しますか?

最大値は単純に によって取得され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 )
于 2016-02-14T08:37:16.013 に答える