5

在 python 中使用 pyqtgraph 模块时出现问题。当我将白色背景颜色添加到 glscatterplot 时,散点就会消失。就像背景的颜色被添加到散点图的颜色中一样,因此一切都是白色的。这是我使用的一段代码:

w = gl.GLViewWidget()
w.setBackgroundColor('w')
w.show()
sp3 = gl.GLScatterPlotItem(pos=np.transpose(pos3), color=rgba_img, size=1, pxMode=False)
w.addItem(sp3)

如果我在 setBackgroundColor 方法中将 ('w') 替换为 ('k'),则散射的颜色很好,背景为黑色。有没有其他人遇到过这个问题?

4

3 回答 3

5

我认为原因是你没有设置前景色。尝试:

import pyqtgraph as pg

pg.setConfigOption('background', 'w')
pg.setConfigOption('foreground', 'k')
于 2015-09-11T08:58:28.447 回答
5

我有同样的问题,我在这里找到了解决方案:https ://github.com/pyqtgraph/pyqtgraph/issues/193 。我认为是同一个问题,所以您可能已经知道解决方案,但我在这里简化了报告,因为。

问题是 GLScatterPlotItem 有一个名为 glOptions 的选项。默认情况下,使用“additive”(参见pyqtgraph.opengl.GLGraphicsItem.GLOptions)。您可以将其更改为“半透明”,如下所示:

sp3.setGLOptions('translucent')

通过这种方式,将背景颜色更改为白色不会有任何问题,也不会将散射颜色更改为黑色(我有两个问题)。

于 2019-05-27T16:28:03.513 回答
2

在 pyqtgraph 中,您在 QPaintDevice 之前构造一个 QApplication:

import pyqtgraph as pg

def mkQApp():
    global QAPP
    QtGui.QApplication.setGraphicsSystem('raster')
    # work around a variety of bugs in the native graphics system
    inst = QtGui.QApplication.instance()
    if inst is None:
        QAPP = QtGui.QApplication([])
    else:
        QAPP = inst
    return QAPP


app = pg.mkQApp()
view  = pg.GraphicsView()#useOpenGL = True)
color='w'
view.setBackground(color)
view.show()

那么你可以使用:plot = pg.PlotItem()等。

于 2016-08-17T18:10:49.903 回答