Использование pyQt5 Я постоянно обновляю график данными, используя self.graphicsView.clear (), а затем функции self.graphicsView.plot ().
Я изменил цвет фона с помощью команды pyqtgraph.setConfigOption ('background', '# f0f0f0') перед созданием виджета, однако это не относится к элементам легенды. Фон серый, а легенда - черная.
Как изменить стиль этого элемента легенды?
Я думаю, что реализую это неправильно, основываясь на том, как я ссылаюсь на каждый новый элемент сюжета. Я считаю, что их нужно как-то создавать, но instance = self.graphicsView.plot (title = "example title") затем ссылается на instance.LegendItem, а затем обращается к нему с помощью HTML-подобного тега. (Невозможно найти ссылку больше)
def plotGraph(self, value):
"""
plots value to graph
"""
self.graphQueue(self.plotDataBuffer, value) #buffered data input, max vals = value
self.graphicsView.clear() #clear data for continuous plot
self.graphicsView.addLegend()
self.graphicsView.plot(self.plotDataBuffer, pen='r', name='Data') #plot item
Примечание: эта функция вызывается в цикле
Команда addLengend () создает новую легенду каждый раз, когда она вызывается, однако, насколько я понимаю, она создается только один раз, а если она вызывается снова, она ссылается только на легенду, которая уже была создана?
Итак, как мне правильно инициализировать легенды один раз, а затем отформатировать стиль, чтобы он соответствовал фону, а не черному?
Упрощенный пример:
import pyqtgraph as pg
from PyQt5 import QtGui
import numpy as np
import sys
pg.setConfigOption('background', '#f0f0f0')
plotWidget = pg.plot(title="Stackoverflow Simplified Example")
app = QtGui.QApplication(sys.argv)
while(1):
x = np.arange(50)
y = np.random.normal(size=(3, 50))
plotWidget.clear()
plotWidget.addLegend()
for i in range(3):
plotWidget.plot(x, y[i], pen=(i,3), name = "test {}".format(i))
app.processEvents()
if __name__ == '__main__':
if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'):
app.exec_() # Start QApplication event loop ***