from pyqtgraph.Qt import QtGui, QtCoreimport pyqtgraph as pgimport numpy as np
win = pg.GraphicsWindow()p1 = win.addPlot()values = [10,50,8,64,45,9,6,12,6,43,3,7,33,67,82,42,12,7,40,8]
for i in range(len(values)-1): if values[i]>values[i+1]: p1.plot([i,i+1],values[i:i+2], pen=(255,0,0)) else: p1.plot([i,i+1],values[i:i+2], pen=(0,255,0))
if __name__ == '__main__': import sys if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'): QtGui.QApplication.instance().exec_()
import pyqtgraph as pgfrom pyqtgraph import QtCore, QtGuiimport numpy as np
class LinePlot(pg.GraphicsObject): def __init__(self, data): pg.GraphicsObject.__init__(self) pg.setConfigOptions(antialias=True)
self.data = data self.width = 2 self.pos = (55,108,91,255) self.neg = (131,54,70,255) self.generatePicture()
def generatePicture(self): self.picture = QtGui.QPicture() p = QtGui.QPainter(self.picture)
for i in range(len(self.data)-1): if data[i] > data[i+1] : p.setPen(pg.mkPen(self.neg, width = self.width)) else: p.setPen(pg.mkPen(self.pos,width = self.width)) p.drawLine(QtCore.QPointF(i, self.data[i]), QtCore.QPointF(i+1, self.data[i+1]))
def paint(self, p, *args): p.drawPicture(0, 0, self.picture)
def boundingRect(self): return QtCore.QRectF(self.picture.boundingRect())
if __name__ == '__main__': import sys
data = np.random.normal(size=1000) item = LinePlot(data) p1 = pg.plot() p1.addItem(item)