pyqtgraph меняет пределы отображаемой цветовой шкалы с помощью pyqtgraph.image()

Я пытаюсь изменить масштаб отображаемых данных (не уверен, что это так называется). Я хочу изменить диапазон, обведенный красным, на 3-6 по умолчанию при запуске

ищите красный цвет

Все, что я прочитал, предполагает, что это должно быть так же просто, как захватить объект ImageView и вызвать setLevels(), как показано здесь. Проблема в том, что я не могу найти объект ImageView, найденный в ImageWindow.

Вот мой исходный код

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)

вызывает ошибку «аргумент уровней должен быть 1d или 2d». Это заставляет меня думать, что это не правильный путь.

Спасибо за вашу помощь

РЕДАКТИРОВАТЬ:

Я старался

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

который производит следующее

новое изображение

Диапазон данных правильный, но легенда справа не обновляется правильно


person Legen Diary    schedule 18.08.2014    source источник


Ответы (1)


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])    
person Luke    schedule 18.08.2014