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)
我也想出来更新剧情(直播剧情)。如果我应该分享,请发表评论。
我正在使用 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)
我也想出来更新剧情(直播剧情)。如果我应该分享,请发表评论。