Как получить стек с PyQtGraph? - PullRequest
0 голосов
/ 17 апреля 2020

Функцию stackplot из библиотеки Matplotlib можно использовать следующим образом:

import matplotlib.pyplot as plt
import numpy as np
import numpy.random as npr

x = np.linspace(0,10,50)
y = [npr.rand(50) for i in range(4)]

plt.stackplot(x,y)
plt.show()

Мне нужно использовать библиотеку PyQtGraph для проекта:

    import pyqtgraph as pg
    from pyqtgraph.Qt import QtGui
    import numpy as np
    import numpy.random as npr

    x = np.linspace(0,10,50)
    y = [npr.rand(50) for i in range(4)]

    win = pg.GraphicsWindow()
    graph = win.addPlot()
    #stackplot function
    QtGui.QApplication.instance().exec_()

Как получить stackplot

1 Ответ

1 голос
/ 22 апреля 2020

Pyqtgraph не имеет встроенной функции построения стека, но вы можете написать это самостоятельно, просто суммируя данные графика перед каждой строкой, и используя аргументы PlotCurveItem * fillLevel и fillBrush , Пример:

import pyqtgraph as pg
import numpy as np

data = np.random.normal(size=(7,10), scale=0.1, loc=1)
stacked = np.cumsum(data, axis=0)

plt = pg.plot()
for i,row in enumerate(stacked):
    curve = plt.plot(row, fillLevel=0, fillBrush=(i,10))
    curve.setZValue(10-i)
...