如何使用 PyQtGraph 获取堆栈图?
How to get a stackplot with PyQtGraph?
Matplotlib库中的stackplot
函数可以如下使用:
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_()
如何获得堆栈图?
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)
Matplotlib库中的stackplot
函数可以如下使用:
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_()
如何获得堆栈图?
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)