def _drawPlotLine( self, painter, xvals, yvals, posn, xdata, ydata, cliprect ): """Draw the line connecting the points.""" pts = self._getLinePoints(xvals, yvals, posn, xdata, ydata) if len(pts) < 2: return s = self.settings if not s.FillBelow.hide: # construct polygon to draw filled region polypts = qt4.QPolygonF([qt4.QPointF(pts[0].x(), posn[3])]) polypts += pts polypts.append(qt4.QPointF(pts[len(pts)-1].x(), posn[3])) utils.brushExtFillPolygon(painter, s.FillBelow, cliprect, polypts) if not s.FillAbove.hide: polypts = qt4.QPolygonF([qt4.QPointF(pts[0].x(), posn[1])]) polypts += pts polypts.append(qt4.QPointF(pts[len(pts)-1].x(), posn[1])) utils.brushExtFillPolygon(painter, s.FillAbove, cliprect, polypts) # draw line between points if not s.PlotLine.hide: painter.setPen( s.PlotLine.makeQPen(painter) ) utils.plotClippedPolyline(painter, cliprect, pts)
def _drawPlotLine(self, painter, xvals, yvals, posn, xdata, ydata, cliprect): """Draw the line connecting the points.""" pts = self._getLinePoints(xvals, yvals, posn, xdata, ydata) if len(pts) < 2: return s = self.settings if not s.FillBelow.hide: # construct polygon to draw filled region polypts = qt4.QPolygonF([qt4.QPointF(pts[0].x(), posn[3])]) polypts += pts polypts.append(qt4.QPointF(pts[len(pts) - 1].x(), posn[3])) utils.brushExtFillPolygon(painter, s.FillBelow, cliprect, polypts) if not s.FillAbove.hide: polypts = qt4.QPolygonF([qt4.QPointF(pts[0].x(), posn[1])]) polypts += pts polypts.append(qt4.QPointF(pts[len(pts) - 1].x(), posn[1])) utils.brushExtFillPolygon(painter, s.FillAbove, cliprect, polypts) # draw line between points if not s.PlotLine.hide: painter.setPen(s.PlotLine.makeQPen(painter)) utils.plotClippedPolyline(painter, cliprect, pts)
def _drawPlotLine( self, painter, xvals, yvals, posn, xdata, ydata, cliprect ): """Draw the line connecting the points.""" pts = self._getLinePoints(xvals, yvals, posn, xdata, ydata) if len(pts) < 2: return s = self.settings for fill in (s.FillBelow, s.FillAbove): if not fill.hide: polypts = qt4.QPolygonF([{ 'bottom': qt4.QPointF(pts[0].x(), posn[3]), 'top': qt4.QPointF(pts[0].x(), posn[1]), 'left': qt4.QPointF(posn[0], pts[0].y()), 'right': qt4.QPointF(posn[2], pts[0].y()), }[fill.edge]]) polypts += pts polypts.append({ 'bottom': qt4.QPointF(pts[-1].x(), posn[3]), 'top': qt4.QPointF(pts[-1].x(), posn[1]), 'left': qt4.QPointF(posn[0], pts[-1].y()), 'right': qt4.QPointF(posn[2], pts[-1].y()), }[fill.edge]) utils.brushExtFillPolygon(painter, fill, cliprect, polypts) # draw line between points if not s.PlotLine.hide: painter.setPen( s.PlotLine.makeQPen(painter) ) utils.plotClippedPolyline(painter, cliprect, pts)
def _errorBarsFilled(style, xmin, xmax, ymin, ymax, xplotter, yplotter, s, painter, clip): """Draw filled region as error region.""" ptsabove = qt4.QPolygonF() ptsbelow = qt4.QPolygonF() for orientation, edges, plotpts, minpts, maxpts, hideline in ( ('vert', ('top', 'bottom'), xplotter, ymin, ymax, s.ErrorBarLine.hideVert), ('horz', ('left', 'right'), yplotter, xmin, xmax, s.ErrorBarLine.hideHorz) ): if ( (orientation in style) and not hideline and (minpts is not None) and (maxpts is not None) ): utils.addNumpyToPolygonF(ptsbelow, plotpts, minpts) utils.addNumpyToPolygonF(ptsabove, plotpts, maxpts) if 'fill' in style: retnpts = qt4.QPolygonF() fillpts = { 'top': ptsabove, 'left': ptsabove, 'bottom': ptsbelow, 'right': ptsbelow } utils.addNumpyToPolygonF(retnpts, xplotter[::-1], yplotter[::-1]) # See note in addSettings about names of FillAbove and # FillBelow for fill in (s.FillAbove, s.FillBelow): # polygons consist of lines joining the points and # continuing back along the plot line (retnpts) if not fill.hideerror: utils.brushExtFillPolygon(painter, fill, clip, fillpts[fill.edge]+retnpts, ignorehide=True) utils.plotClippedPolyline(painter, clip, ptsabove) utils.plotClippedPolyline(painter, clip, ptsbelow)
def drawFillPts(self, painter, brushext, cliprect, ptsx, ptsy): '''Draw points for plotting a fill.''' pts = qt4.QPolygonF() utils.addNumpyToPolygonF(pts, ptsx, ptsy) filltype = brushext.filltype # this is broken: FIXME if filltype == 'left': dyend = ptsy[-1]-self._box[1] pts.append( qt4.QPointF(ptsx[-1]-dyend*tan30, self._box[1]) ) dystart = ptsy[0]-self._box[1] pts.append( qt4.QPointF(ptsx[0]-dystart*tan30, self._box[1]) ) elif filltype == 'right': pts.append( qt4.QPointF(self._box[2], ptsy[-1]) ) pts.append( qt4.QPointF(self._box[2], ptsy[0]) ) elif filltype == 'bottom': dyend = self._box[3]-ptsy[-1] pts.append( qt4.QPointF(ptsx[-1]-dyend*tan30, self._box[3]) ) dystart = self._box[3]-ptsy[0] pts.append( qt4.QPointF(ptsx[0]-dystart*tan30, self._box[3]) ) elif filltype == 'polygon': pass else: pts = None if pts is not None: utils.brushExtFillPolygon(painter, brushext, cliprect, pts)
def _errorBarsFilled(style, xmin, xmax, ymin, ymax, xplotter, yplotter, s, painter, clip): """Draw filled region as error region.""" ptsabove = qt4.QPolygonF() ptsbelow = qt4.QPolygonF() hidevert = True # keep track of what's shown hidehorz = True if ('vert' in style and (ymin is not None and ymax is not None) and not s.ErrorBarLine.hideVert): hidevert = False # lines above/below points utils.addNumpyToPolygonF(ptsbelow, xplotter, ymin) utils.addNumpyToPolygonF(ptsabove, xplotter, ymax) elif ('horz' in style and (xmin is not None and xmax is not None) and not s.ErrorBarLine.hideHorz): hidehorz = False # lines left/right points utils.addNumpyToPolygonF(ptsbelow, xmin, yplotter) utils.addNumpyToPolygonF(ptsabove, xmax, yplotter) # draw filled regions above/left and below/right if 'fill' in style and not (hidehorz and hidevert): # construct points for error bar regions retnpts = qt4.QPolygonF() utils.addNumpyToPolygonF(retnpts, xplotter[::-1], yplotter[::-1]) # polygons consist of lines joining the points and continuing # back along the plot line (retnpts) if not s.FillBelow.hideerror: utils.brushExtFillPolygon(painter, s.FillBelow, clip, ptsbelow + retnpts, ignorehide=True) if not s.FillAbove.hideerror: utils.brushExtFillPolygon(painter, s.FillAbove, clip, ptsabove + retnpts, ignorehide=True) # draw optional line (on top of fill) utils.plotClippedPolyline(painter, clip, ptsabove) utils.plotClippedPolyline(painter, clip, ptsbelow)
def drawFillPts(self, painter, extfill, cliprect, ptsx, ptsy): '''Draw points for plotting a fill.''' pts = qt4.QPolygonF() utils.addNumpyToPolygonF(pts, ptsx, ptsy) filltype = extfill.filltype if filltype == 'center': pts.append(qt4.QPointF(self._xc, self._yc)) utils.brushExtFillPolygon(painter, extfill, cliprect, pts) elif filltype == 'outside': pp = qt4.QPainterPath() pp.moveTo(self._xc, self._yc) pp.arcTo(cliprect, 0, 360) pp.addPolygon(pts) utils.brushExtFillPath(painter, extfill, pp) elif filltype == 'polygon': utils.brushExtFillPolygon(painter, extfill, cliprect, pts)
def drawFillPts(self, painter, extfill, cliprect, ptsx, ptsy): '''Draw points for plotting a fill.''' pts = qt4.QPolygonF() utils.addNumpyToPolygonF(pts, ptsx, ptsy) filltype = extfill.filltype if filltype == 'center': pts.append( qt4.QPointF(self._xc, self._yc) ) utils.brushExtFillPolygon(painter, extfill, cliprect, pts) elif filltype == 'outside': pp = qt4.QPainterPath() pp.moveTo(self._xc, self._yc) pp.arcTo(cliprect, 0, 360) pp.addPolygon(pts) utils.brushExtFillPath(painter, extfill, pp) elif filltype == 'polygon': utils.brushExtFillPolygon(painter, extfill, cliprect, pts)
def _errorBarsFilled(style, xmin, xmax, ymin, ymax, xplotter, yplotter, s, painter, clip): """Draw filled region as error region.""" ptsabove = qt4.QPolygonF() ptsbelow = qt4.QPolygonF() hidevert = True # keep track of what's shown hidehorz = True if ( 'vert' in style and (ymin is not None and ymax is not None) and not s.ErrorBarLine.hideVert ): hidevert = False # lines above/below points utils.addNumpyToPolygonF(ptsbelow, xplotter, ymin) utils.addNumpyToPolygonF(ptsabove, xplotter, ymax) elif ( 'horz' in style and (xmin is not None and xmax is not None) and not s.ErrorBarLine.hideHorz ): hidehorz = False # lines left/right points utils.addNumpyToPolygonF(ptsbelow, xmin, yplotter) utils.addNumpyToPolygonF(ptsabove, xmax, yplotter) # draw filled regions above/left and below/right if 'fill' in style and not (hidehorz and hidevert): # construct points for error bar regions retnpts = qt4.QPolygonF() utils.addNumpyToPolygonF(retnpts, xplotter[::-1], yplotter[::-1]) # polygons consist of lines joining the points and continuing # back along the plot line (retnpts) if not s.FillBelow.hideerror: utils.brushExtFillPolygon(painter, s.FillBelow, clip, ptsbelow+retnpts, ignorehide=True) if not s.FillAbove.hideerror: utils.brushExtFillPolygon(painter, s.FillAbove, clip, ptsabove+retnpts, ignorehide=True) # draw optional line (on top of fill) utils.plotClippedPolyline(painter, clip, ptsabove) utils.plotClippedPolyline(painter, clip, ptsbelow)