Great, I'll try to implement it. Thanks! Really loving pyqtgraph btw.
On Saturday, August 27, 2016 at 12:02:42 AM UTC-7, Luke Campagnola wrote: > > PyQtGraph doesn't provide anything like this, but it's pretty easy to > write as a QGraphicsItem class. As long as you don't need the data to > update rapidly, you can "bake" all of your line segments into a single > QPicture. This should be very quick to redraw: > > 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) > > > On Tue, Aug 23, 2016 at 11:14 AM, Preston Hinkle <[email protected] > <javascript:>> wrote: > >> Hello, >> >> As the title suggests, I'm looking for a way to change the color of >> discrete segments of a PlotDataItem. My current method creates a >> PlotDataItem for every segment and plots it over the background with a >> different pen, but this is apparently very expensive when the number of >> segments accumulates to around a 1000. Instead, is it possible to draw >> segments of a single PlotDataItem with different pens? I looked through the >> documentation but couldn't find anything. >> >> Thanks! >> >> -- >> You received this message because you are subscribed to the Google Groups >> "pyqtgraph" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/pyqtgraph/69a62e28-d917-459b-bdee-699a426e61df%40googlegroups.com >> >> <https://groups.google.com/d/msgid/pyqtgraph/69a62e28-d917-459b-bdee-699a426e61df%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> For more options, visit https://groups.google.com/d/optout. >> > > -- You received this message because you are subscribed to the Google Groups "pyqtgraph" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/pyqtgraph/292baa04-1297-46e7-b95d-3e61432f6c94%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
