如何解决pyqtgraph-对ImageItem的轴使用任意值
我感觉这里缺少明显的东西,但是我在互联网上找不到任何有用的东西。
我有一个使用pyqtgraph显示信号的应用程序。该信号有1000个样本,代表0-0.5范围内的值。
用正确的X轴值绘制它很简单-我只是制作一个具有正确范围和元素数的linspace
并将其用作x
中的plot
。
但是如何对ImageItem
内的PlotWidget
做同样的事情?它使用元素数作为X轴,但我无法弄清楚如何告诉它使用正确的值。
有关代码的相关部分:
首先,创建我的X值:
self.xval_h = numpy.linspace(0,0.5,len(self.spectrum_h[-1]))
self.xval_v = numpy.linspace(0,len(self.spectrum_v[-1]))
并用于更新情节和图像:
def update_spectrum(self):
self.HSpectrum.plot(self.xval_h,self.spectrum_h[-1],clear=True)
self.VSpectrum.plot(self.xval_v,self.spectrum_v[-1],clear=True)
def update_trace(self):
self.image_h.setimage(numpy.array(self.spectrum_h).T)
self.image_v.setimage(numpy.array(self.spectrum_v).T)
因此,问题归结为如何将xval
与ImageItem
(或包含PlotWidget
的{{1}})一起使用?
非常感谢您的帮助!
解决方法
您可以使用“ setRect”定义图像坐标,并传递“ QRectF(x,y,width,height)”(如果是pg.setConfigOptions(imageAxisOrder = “ row-major”)已启用):
image_width = abs(self.xval_h[0]-self.xval_h[0])
image_height = abs(self.xval_h[0]-self.xval_h[0]) # if x and y-scales are the same
pixel_size = image_width/(self.xval_h.size-1)
self.image_h.setRect(QRectF(self.xval_h[0]-pixel_size/2,self.xval_h[0]-pixel_size/2,image_width,image_height))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。