import pyqtgraph as pg
from pyqtgraph.Qt import QtGui, QtCore
import numpy as np
class Segments(QtGui.QGraphicsItem):
def __init__(self, pos, color):
QtGui.QGraphicsItem.__init__(self)
self.pic = QtGui.QPicture()
painter = QtGui.QPainter()
painter.begin(self.pic)
for i in range(len(pos)-1):
painter.setPen(QtGui.QPen(QtGui.QColor(*color[i])))
p1 = QtCore.QPointF(*pos[i])
p2 = QtCore.QPointF(*pos[i+1])
painter.drawLine(p1, p2)
painter.end()
def paint(self, p, *args):
p.drawPicture(0, 0, self.pic)
def boundingRect(self):
return QtCore.QRectF(self.pic.boundingRect())
pos = np.empty((10000,2))
pos[:,0] = np.linspace(0, 10, 10000)
pos[:,1] = np.random.normal(size=(10000))
color = np.random.random(size=(9999,3)) * 255
p = pg.plot()
seg = Segments(pos, color)
p.addItem(seg)