1

表示されているデータのスケールを変更しようとしています (これが呼ばれるものかどうかはわかりません) 起動時にデフォルトで赤丸で囲まれた範囲を 3 ~ 6 に変更したい

赤を探して

私が読んだことはすべて、ここに示すように ImageView オブジェクトを取得して setLevels() を呼び出すのと同じくらい簡単であることを示唆しています。問題は、ImageWindow 内にある ImageView オブジェクトが見つからないことです。

これが私の初期コードです

imv = pg.image(amps)
okay = imv.imageItem

imv.view.setAspectLocked(ratio = 4)
print( vars(imv))
imv.setLimits(3,6)

win = QtGui.QMainWindow()

#im.setLookupTable(lut)
if __name__ == '__main__':
    import sys
    if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'):            
        QtGui.QApplication.instance().exec_()

しかし、ImageWindow には属性 setLimits がないと書かれています。

実行して ImageView を検索してみました

print(vars(imv))

しかし、私が見つけることができる最も近いものはImageItemですが、

imv.imageItem.setLevels(3,6)

「levels引数は1dまたは2dでなければなりません」というエラーが発生します。これは正しい道ではないと思います。

ご協力いただきありがとうございます

編集:

私は試した

imv.imageItem.setLevels((3,6))

以下を生成します

新しい絵

データの範囲は正しいが、右側の凡例が正しく更新されていない

4

1 に答える 1

2

ImageWindowは のサブクラスなImageViewので、同じメソッドがすべて適用されます。ドキュメントはこちら: http://www.pyqtgraph.org/documentation/widgets/imageview.html#pyqtgraph.ImageView.setImage

これらはすべて、ほぼ同じことを異なる方法で記述したものです。

# 1:
pg.image(data, levels=[3, 6])

# 2:
imv = pg.image(data)
imv.setLevels(3, 6)

# 3:
imv = pg.ImageView()
imv.setImage(data, levels=[3, 6])    
于 2014-08-18T20:14:24.963 に答える