微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

pyqtgraph-对ImageItem的轴使用任意值

如何解决pyqtgraph-对ImageItem的轴使用任意值

我感觉这里缺少明显的东西,但是我在互联网上找不到任何有用的东西。

我有一个使用pyqtgraph显示信号的应用程序。该信号有1000个样本,代表0-0.5范围内的值。 用正确的X轴值绘制它很简单-我只是制作一个具有正确范围和元素数的linspace并将其用作x中的plot

但是如何对ImageItem内的PlotWidget做同样的事情?它使用元素数作为X轴,但我无法弄清楚如何告诉它使用正确的值。

看一下屏幕截图-我需要为图像使用与下面的图相同的X轴值。

application screenshot

有关代码的相关部分:
首先,创建我的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)

因此,问题归结为如何将xvalImageItem(或包含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 举报,一经查实,本站将立刻删除。