首页IT科技a breakdown of the factors(A breakdown pie chart ReportLab Snippets (Beta))

a breakdown of the factors(A breakdown pie chart ReportLab Snippets (Beta))

时间2025-06-20 21:58:44分类IT科技浏览3670
导读:A breakdown pie chart - ReportLab Snippets (Beta ...

A breakdown pie chart - ReportLab Snippets (Beta)

Code snippets are bits of re-usable code submitted by the ReportLab community.

We dont promise that they are accurate, up-to-date or correct - use them at your own risk!

Wed love it if you could participate by submitting your own snippets and sharing your experience with others by commenting.

You will need to create a user account by filling out our very simple form.

View all snippets

A breakdown pie chart

This shows a Pie chart with a Legend, being saved as both a bitmap for the web and a PDF chart. This code was generated using Diagra (ReportLabs commercial charts package), which allows you to define charts in a GUI. However, you dont need this package to run it, and all the chart features demonstrated are available in our open source package.

view plaincopy to clipboardprint?
#AutogeneratedbyReportLabguieditdonotedit fromreportlab.graphics.charts.piechartsimportPie fromreportlab.lib.colorsimportblack,red,purple,green,maroon,brown,pink,white,HexColor fromreportlab.graphics.charts.legendsimportLegend fromreportlab.graphics.shapesimportDrawing,_DrawingEditorMixin fromreportlab.lib.validatorsimportAuto fromreportlab.lib.colorsimportHexColor,black pdf_chart_colors=[ HexColor("#0000e5"), HexColor("#1f1feb"), HexColor("#5757f0"), HexColor("#8f8ff5"), HexColor("#c7c7fa"), HexColor("#f5c2c2"), HexColor("#eb8585"), HexColor("#e04747"), HexColor("#d60a0a"), HexColor("#cc0000"), HexColor("#ff0000"), ] defsetItems(n,obj,attr,values): m=len(values) i=m//n forjinxrange(n): setattr(obj[j],attr,values[j*i%m]) classBreakdownPieDrawing(_DrawingEditorMixin,Drawing): def__init__(self,width=400,height=200,*args,**kw): apply(Drawing.__init__,(self,width,height)+args,kw) #addingapiecharttothedrawing self._add(self,Pie(),name=pie,validate=None,desc=None) self.pie.width=150 self.pie.height=self.pie.width self.pie.x=20 self.pie.y=(height-self.pie.height)/2 self.pie.data=[26.90,13.30,11.10,9.40,8.50,7.80,7.00,6.20,8.80,1.00] self.pie.labels=[Financials,Energy,HealthCare,Telecoms,Consumer,Consumer2,Industrials,Materials,Other,LiquidAssets] self.pie.simpleLabels=1 self.pie.slices.label_visible=0 self.pie.slices.fontColor=None self.pie.slices.strokeColor=white self.pie.slices.strokeWidth=1 #addinglegend self._add(self,Legend(),name=legend,validate=None,desc=None) self.legend.x=200 self.legend.y=height/2 self.legend.dx=8 self.legend.dy=8 self.legend.fontName=Helvetica self.legend.fontSize=7 self.legend.boxAnchor=w self.legend.columnMaximum=10 self.legend.strokeWidth=1 self.legend.strokeColor=black self.legend.deltax=75 self.legend.deltay=10 self.legend.autoXPadding=5 self.legend.yGap=0 self.legend.dxTextSpace=5 self.legend.alignment=right self.legend.dividerLines=1|2|4 self.legend.dividerOffsY=4.5 self.legend.subCols.rpad=30 n=len(self.pie.data) setItems(n,self.pie.slices,fillColor,pdf_chart_colors) self.legend.colorNamePairs=[(self.pie.slices[i].fillColor,(self.pie.labels[i][0:20],%0.2f%self.pie.data[i]))foriinxrange(n)] if__name__=="__main__":#NORUNTESTS drawing=BreakdownPieDrawing() #thedrawingwillbesavedaspdfandpngbelow,youcoulddootherthingswithitobviously. drawing.save(formats=[pdf,png],outDir=.,fnRoot=None)
#Autogenerated by ReportLab guiedit do not edit from reportlab.graphics.charts.piecharts import Pie from reportlab.lib.colors import black, red, purple, green, maroon, brown, pink, white, HexColor from reportlab.graphics.charts.legends import Legend from reportlab.graphics.shapes import Drawing, _DrawingEditorMixin from reportlab.lib.validators import Auto from reportlab.lib.colors import HexColor, black pdf_chart_colors = [ HexColor("#0000e5"), HexColor("#1f1feb"), HexColor("#5757f0"), HexColor("#8f8ff5"), HexColor("#c7c7fa"), HexColor("#f5c2c2"), HexColor("#eb8585"), HexColor("#e04747"), HexColor("#d60a0a"), HexColor("#cc0000"), HexColor("#ff0000"), ] def setItems(n, obj, attr, values): m = len(values) i = m // n for j in xrange(n): setattr(obj[j],attr,values[j*i % m]) class BreakdownPieDrawing(_DrawingEditorMixin,Drawing): def __init__(self,width=400,height=200,*args,**kw): apply(Drawing.__init__,(self,width,height)+args,kw) # adding a pie chart to the drawing self._add(self,Pie(),name=pie,validate=None,desc=None) self.pie.width = 150 self.pie.height = self.pie.width self.pie.x = 20 self.pie.y = (height-self.pie.height)/2 self.pie.data = [26.90,13.30,11.10,9.40,8.50,7.80,7.00,6.20,8.80,1.00] self.pie.labels = [Financials,Energy,Health Care,Telecoms,Consumer,Consumer 2,Industrials,Materials,Other,Liquid Assets] self.pie.simpleLabels = 1 self.pie.slices.label_visible = 0 self.pie.slices.fontColor = None self.pie.slices.strokeColor = white self.pie.slices.strokeWidth = 1 # adding legend self._add(self,Legend(),name=legend,validate=None,desc=None) self.legend.x = 200 self.legend.y = height/2 self.legend.dx = 8 self.legend.dy = 8 self.legend.fontName = Helvetica self.legend.fontSize = 7 self.legend.boxAnchor = w self.legend.columnMaximum = 10 self.legend.strokeWidth = 1 self.legend.strokeColor = black self.legend.deltax = 75 self.legend.deltay = 10 self.legend.autoXPadding = 5 self.legend.yGap = 0 self.legend.dxTextSpace = 5 self.legend.alignment = right self.legend.dividerLines = 1|2|4 self.legend.dividerOffsY = 4.5 self.legend.subCols.rpad = 30 n = len(self.pie.data) setItems(n,self.pie.slices,fillColor,pdf_chart_colors) self.legend.colorNamePairs = [(self.pie.slices[i].fillColor, (self.pie.labels[i][0:20], %0.2f % self.pie.data[i])) for i in xrange(n)] if __name__=="__main__": #NORUNTESTS drawing = BreakdownPieDrawing() # the drawing will be saved as pdf and png below, you could do other things with it obviously. drawing.save(formats=[pdf,png],outDir=.,fnRoot=None)
声明:本站所有文章            ,如无特殊说明或标注                   ,均为本站原创发布             。任何个人或组织       ,在未征得本站同意时            ,禁止复制             、盗用                   、采集      、发布本站内容到任何网站      、书籍等各类媒体平台                   。如若本站内容侵犯了原著者的合法权益                  ,可联系我们进行处理      。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
win10开机铃声(开机音效回归! Windows 11重新引入开机铃声)