Как установить цвет фона для отдельного PlotItem в pyqtgraph? - PullRequest
1 голос
/ 05 июня 2019

Я хочу установить разные цвета фона для последовательности дочерних участков, которые являются объектами PlotItem, в GraphicsLayoutWidget, например:

import pyqtgraph as pg

win = pg.GraphicsLayoutWidget()
win.resize(1200,600)
win.setBackground('w')

color_list = [(r1,g1,b1), (r2,g2,b2), ...]
for j in range(10):
    p = win.addPlot(title="Ch #"+str(j))
    p.plot(y=Y_mean, pen=(0,0,0))
    p.setBackgroundColor(color_list[j]) # <---  Or something similar to that

Это поднимает:

AttributeError: 'PlotItem' object has no attribute 'setBackgroundColor'

Я не могу найти способ установить это свойство в классе pyqtgraph.PlotItem или в любом из его унаследованных классов.

1 Ответ

2 голосов
/ 06 июня 2019

Вы должны установить цвет в ViewBox PlotItem с помощью метода setBackgroundColor():

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

if __name__ == "__main__":
    import sys

    app = QtGui.QApplication(sys.argv)
    win = pg.GraphicsLayoutWidget()
    win.resize(1200, 600)
    win.setBackground("w")

    color_list = [(100, 10, 34), (20, 30, 40), (40, 146, 10)]
    for j, color in zip(range(3), color_list):
        p = win.addPlot(title="Ch #{}".format(j))
        p.plot(y=np.random.rand(200), pen=(0, 0, 0))
        vb = p.getViewBox()
        vb.setBackgroundColor(color)
    win.show()
    sys.exit(app.exec_())

enter image description here

...