在pyqtgraph中设置背景颜色的问题

时间:2015-07-22 15:28:52

标签: python scatter-plot pyqtgraph setbackground

我在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方法中用('k')替换('w'),则散射的颜色很好,背景为黑色。有没有其他人得到过这个问题?

2 个答案:

答案 0 :(得分:1)

在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()等。

答案 1 :(得分:0)

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

问题在于,GLScatterPlotItem有一个名为glOptions的选项。默认情况下,使用“加法”(请参见pyqtgraph.opengl.GLGraphicsItem.GLOptions)。您可以像这样将其更改为“半透明”:

sp3.setGLOptions('translucent')

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