我目前正在尝试创建一个PyQtGraph gui,以便在使用与此类似的代码进入新数据时重复绘制图像:
self.app = QtGui.QApplication([])
self.win = QtGui.QMainWindow()
self.win.resize(800, 600)
self.imv = pg.ImageView()
self.win.setCentralWidget(self.imv)
self.win.setWindowTitle('My Title')
self.timer = QtCore.QTimer()
self.timer.timeout.connect(self.check_for_new_data_and_replot)
self.timer.start(100)
self.win.show()
然后每次我获得新数据时我都会绘制图像:
self.imv.setImage(self.data_array)
我遇到的一个问题是我的数据阵列通常具有偏斜的宽高比,即它通常真的很高而且很瘦。"或者"短而胖",并且绘制的图像具有相同的比例。
有没有办法拉伸图像以适应窗口?我查看了ImageView和ImageItem的文档,但无法找到我需要的内容。 (也许它就在那里,但我无法识别它。)
答案 0 :(得分:2)
我想通了 - 使用较低级别的ImageItem类以一种拉伸以适合窗口大小的方式显示图像:
self.app = QtGui.QApplication([])
self.win = pg.GraphicsLayoutWidget()
self.win.resize(800, 600)
self.img = pg.ImageItem()
self.plot = self.win.addPlot()
self.plot.addItem(self.img)
self.win.setWindowTitle('My Title')
self.timer = QtCore.QTimer()
self.timer.timeout.connect(self.check_for_new_data_and_replot)
self.timer.start(100)
self.win.show()
并更新图像数据:
self.img.setImage(self.data_array)
这也让我可以在两侧显示轴刻度,这也是我想要的功能。