Прозрачность заполненного сюжета в pyqtgraph - PullRequest
2 голосов
/ 14 июня 2019

Если я делаю основной заполненный сюжет, как в примере с pyqtgraph. Как я могу редактировать прозрачность залитой области?

import pyqtgraph as pg
win = pg.GraphicsWindow(title="Basic plotting examples")
p7 = win.addPlot(title="Filled plot, axis disabled")
y = np.sin(np.linspace(0, 10, 1000)) + np.random.normal(size=1000, scale=0.1)
p7.plot(y, fillLevel=-0.3, brush=(50,50,200,100))

Вы можете создавать собственные кисти с помощью mkBrush:

br = pg.mkBrush(color='r')

Но я не могу найти никаких вариантов прозрачности.

1 Ответ

3 голосов
/ 15 июня 2019

Вы можете настроить прозрачность графика, изменив набор (r,g,b,a) кисти. Последний параметр (a) определяет альфа-настройку заполненного графика, которая варьируется от 0-255. Установка этого значения на 0 обеспечивает 100% прозрачность, а установка на 255 дает 100% непрозрачную заливку.

Для вашего примера, изменение этой строки повлияет на заполненную прозрачность. Установка 50 дает вам полупрозрачную заливку

p7.plot(y, fillLevel=-0.3, brush=(50,50,200,50))

enter image description here

Установка значения 200 дает более непрозрачную заливку

p7.plot(y, fillLevel=-0.3, brush=(50,50,200,200))

enter image description here

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

app = QtGui.QApplication([])

win = pg.GraphicsWindow(title="Basic plotting examples")
win.resize(1000,600)
win.setWindowTitle('pyqtgraph example: Plotting')

# Enable antialiasing for prettier plots
pg.setConfigOptions(antialias=True)

p7 = win.addPlot(title="Filled plot, axis disabled")
y = np.sin(np.linspace(0, 10, 1000)) + np.random.normal(size=1000, scale=0.1)
p7.plot(y, fillLevel=-0.3, brush=(50,50,200,50)) # <-- Adjust the brush alpha value
p7.showAxis('bottom', False)

## Start Qt event loop unless running in interactive mode or using pyside.
if __name__ == '__main__':
    import sys
    if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'):
        QtGui.QApplication.instance().exec_()
...