【问题标题】:Adding a gradient of image to window将图像渐变添加到窗口
【发布时间】:2019-09-16 04:30:06
【问题描述】:

我一直在研究实时频谱图,并且大部分时间都在工作。我关注了this tutorial,这让我走到了这一步。

但我想摆脱直方图,并添加基本上相当于颜色条的 matlabs。最好在频谱图上方但在功率图下方。这是我的设置情节代码。

pg.setConfigOptions(imageAxisOrder='row-major')
pg.mkQApp()
win = pg.GraphicsLayoutWidget()

# restrict size of plot areas
win.ci.layout.setColumnMaximumWidth(1, 100)
win.ci.layout.setRowMaximumHeight(1, 200)
p2=win.addPlot(row=1,col=0,rowspan=1,colspan=1)
p1=win.addPlot(row=2,col=0,rowspan=3,colspan=1)

img = pg.ImageItem()
spec_hist = pg.PlotItem()

xscale = 1.0/((data_window.shape[1]/fs))
yscale = (1./fs)*packet_send*samples_per_packet
img.scale(xscale, yscale)
img.rotate(270) 

p1.addItem(img)

win.nextRow()
win.nextRow()
win.nextRow()
hist=pg.HistogramLUTItem()
hist.setImageItem(img)
win.addItem(hist)
win.show()
hist.gradient.restoreState({'mode': 'rgb','ticks': [(0.5, (0, 182, 188, 255)),(1.0, (246, 111, 0, 255)),(0.0, (75, 0, 113, 255))]})
img.setImage(data_window, clear=True,levels=[-10, 180])
img.translate(0,fc/xscale)
p2.addLegend()
p2.showGrid(x= True, y = True)
c1=p2.plot(freq,spec_window,pen='r',name='Max over time')
c2=p2.plot(freq,data_window[0,:],pen='b',name='Instantaneous')

p1.setLabel('bottom', "Frequency", units='Hz')
p1.setLabel('left', "Time", units='s')

p2.setLabel('bottom', "Frequency", units='Hz')
p2.setLabel('left', "Power", units='dBFS')

我知道删除 3x nextRows() 并评论 win.addItem(hist) 会删除直方图(无论如何从视图中),删除与直方图相关的所有内容会完全删除直方图,但也会将我的图像更改为黑色和白色的。我该怎么办?

【问题讨论】:

    标签: python python-2.7 pyqt pyqtgraph


    【解决方案1】:

    我遇到了同样的问题。过了一会儿,遇到了这个问题:https://pypi.org/project/pyqtgraph-extensions/

    在该软件包中,有 matlab 之类的颜色条,对我来说效果最好。

    【讨论】:

      猜你喜欢
      • 2019-11-16
      • 2015-06-25
      • 1970-01-01
      • 1970-01-01
      • 2018-02-04
      • 2014-07-22
      • 2018-09-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多