pyqtgraphh:图像项不在 GraphicsView 的中心

pyqtgrapgh: Image Item not in the center of GraphicsView

我正在使用 pyqtgraph 可视化二维数组。由于我要评估一个实时应用程序,因此我必须刷新可视化图像,因此我使用的是 GraphicsView()。然后我创建一个 ImageItem,我想将 Item 添加到创建的 window。不幸的是,该图像仅在 window 的左上角可见。我知道我可以在没有 GraphicsView 的情况下显示完整图像,但正如我所说,我稍后将需要 GraphicsView 来实时显示应用程序的更新值。

这是我当前的代码:

import numpy as np
from pyqtgraph.Qt import QtGui, QtCore
import pyqtgraph as pg

import struct
import sounddevice as sd
from scipy.fftpack import fft

import sys
import time

class Fenster(pg.GraphicsLayoutWidget):  #objektorientiert arbeiten!!
    def __init__(self):     #constructor
        super().__init__()  #ruft den constructor von QWidget auf
        self.initMe()  

class Fenster(pg.GraphicsLayoutWidget):  
    def __init__(self):     
        super().__init__()  
        self.initMe()       
        
        
    def initMe(self):
        
        self.win = pg.GraphicsView()
        self.win.show()
        
        self.plot_data = np.fromfunction(lambda i, j: (1+0.3*np.sin(i)) * (i)**2 + (j)**2, (100, 100))
        self.img = pg.ImageItem(image=self.plot_data)
        self.cm = pg.colormap.get('CET-L9') 
        self.bar = pg.ColorBarItem( values= (0, 20_000), colorMap=self.cm ) 
        self.bar.setImageItem(self.img)
        
        self.win.setCentralItem(self.img)

w = Fenster() 

这是输出图像:

如何设置图片填满整个window? 我怎样才能让创建的 ColorBarItem 显示在 window 中? (可选)

提前致谢。

我找到了解决方案。您必须创建一个 PlotItem。然后将ImageItem添加到PlotItem中,将PlotItem设置在GraphicsView的中心

        self.win = pg.GraphicsView()
        self.win.show()
        self.p = pg.PlotItem() 
        self.win.setCentralItem(self.p)
        
        self.plot_data = np.fromfunction(lambda i, j: (1+0.3*np.sin(i)) * (i)**2 + (j)**2, (100, 100))
        self.img = pg.ImageItem(image=self.plot_data)
        self.cm = pg.colormap.get('CET-L9') 
        self.bar = pg.ColorBarItem( values= (0, 20_000), colorMap=self.cm ) 
        self.bar.setImageItem(self.img)
    
        self.p.addItem(self.img)

我也想出来更新剧情(直播剧情)。如果我应该分享,请发表评论。