#Autogenerated by ReportLab guiedit do not edit "A depth area chart" from reportlab.pdfbase.pdfmetrics import stringWidth from reportlab.graphics.shapes import Drawing, _DrawingEditorMixin, Rect from reportlab.graphics.charts.lineplots import SimpleTimeSeriesPlot, _monthlyIndexData from reportlab.lib.colors import toColor, white, black class UnderWaterChart(_DrawingEditorMixin,Drawing): def __init__(self,width=400,height=200,*args,**kw): Drawing.__init__(self,width,height,*args,**kw) self._add(self,SimpleTimeSeriesPlot(),name='chart',validate=None,desc=None) self._fontSize = 6 self._fontName = 'Helvetica' self._yTickLeft = 2 waterColor = 'green' lineColor = 'black' self.width = 257 self.height = 120 self._endSlack = 10 self._topSlack = 12 chart = self.chart chart.x = 20 chart.y = 5 chart.data = [[(d,0.95-v/100.0) for d,v in _monthlyIndexData[1]]] chart.height = 50 chart.lines[0].inFill = 1 chart.yValueAxis.forceZero = 1 chart.xValueAxis.labelAxisMode='high' chart.xValueAxis.joinAxisMode='top' chart.xValueAxis.labels.boxAnchor='s' chart.xValueAxis.labels.dy = +5 chart.xValueAxis.tickDown = 0 chart.xValueAxis.tickUp = 3 chart.yValueAxis.labelTextFormat = lambda v: '%.0f%%' % v if abs(v)>1e-6 else '0%' chart.yValueAxis.strokeWidth = 0.5 chart.xValueAxis.tickStrokeWidth = 0.5 chart.yValueAxis.tickStrokeWidth = 0.5 chart.xValueAxis.maximumTicks = 14 chart.xValueAxis.labels.fontSize = self._fontSize chart.xValueAxis.labels.fontName = self._fontName chart.yValueAxis.labels.fontSize = self._fontSize chart.yValueAxis.labels.fontName = self._fontName chart.yValueAxis.tickLeft = self._yTickLeft chart.yValueAxis.labels.dx = -self._yTickLeft chart.lines[0].fillColor = toColor(waterColor) chart.lines[0].strokeColor = toColor(lineColor) chart.xValueAxis.visibleGrid = 1 chart.yValueAxis.visibleGrid = 1 chart.xValueAxis.forceFirstDate = 1 #self.chart.x = 30 def getContents(self): chart = self.chart chart.height = self.height - chart.y - self._topSlack chart.width = self.width - chart.x - self._endSlack return Drawing.getContents(self) if __name__=="__main__": #NORUNTESTS UnderWaterChart().save(formats=['pdf'],outDir='.',fnRoot=None)