本文整理汇总了Python中reportlab.graphics.charts.piecharts.Pie类的典型用法代码示例。如果您正苦于以下问题:Python Pie类的具体用法?Python Pie怎么用?Python Pie使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Pie类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: subtest
def subtest(sa, d):
pc = Pie()
pc.direction = d
pc.startAngle = sa
arcs = _makeSideArcDefs(sa, d)
A = [x[1] for x in pc.makeAngles()]
arcsum = sum([a[2] - a[1] for a in arcs])
isum = intSum(arcs, A)
mi = max([a[2] - a[1] for a in arcs])
ni = min([a[2] - a[1] for a in arcs])
l = []
s = arcsum - 360
if s > 1e-8:
l.append("Arc length=%s != 360" % s)
s = abs(isum - 360)
if s > 1e-8:
l.append("interval intersection length=%s != 360" % s)
if mi > 360:
l.append("max interval intersection length=%s >360" % mi)
if ni < 0:
l.append("min interval intersection length=%s <0" % ni)
if l:
l.append("sa: %s d: %s" % (sa, d))
l.append("sidearcs: %s" % str(arcs))
l.append("Angles: %s" % A)
raise ValueError("piecharts._makeSideArcDefs failure\n%s" % "\n".join(l))
示例2: sample4pie
def sample4pie():
width = 300
height = 150
d = Drawing(width, height)
pc = Pie()
pc.x = 150
pc.y = 50
pc.data = [1, 50, 100, 100, 100, 100, 100, 100, 100, 50]
pc.labels = ['0','a','b','c','d','e','f','g','h','i']
pc.slices.strokeWidth=0.5
pc.slices[3].popout = 20
pc.slices[3].strokeWidth = 2
pc.slices[3].strokeDashArray = [2,2]
pc.slices[3].labelRadius = 1.75
pc.slices[3].fontColor = colors.red
d.add(pc)
legend = Legend()
legend.x = width-5
legend.y = height-5
legend.dx = 20
legend.dy = 5
legend.deltax = 0
legend.boxAnchor = 'nw'
legend.colorNamePairs=Auto(chart=pc)
d.add(legend)
return d
示例3: test0
def test0(self, isFast=0):
"""Hello World, on a rectangular background.
The rectangle's fillColor is yellow.
The string's fillColor is red.
"""
reportlab.rl_config.shapeChecking = not isFast
pdfPath = outputfile('test_graphics_speed_fast.pdf')
c = Canvas(pdfPath)
t0 = time.time()
d = Drawing(400, 200)
num = 100
for i in range(num):
pc = Pie()
pc.x = 150
pc.y = 50
pc.data = [10,20,30,40,50,60]
pc.labels = ['a','b','c','d','e','f']
pc.slices.strokeWidth=0.5
pc.slices[3].popout = 20
pc.slices[3].strokeWidth = 2
pc.slices[3].strokeDashArray = [2,2]
pc.slices[3].labelRadius = 1.75
pc.slices[3].fontColor = colors.red
d.add(pc)
d.drawOn(c, 80, 500)
t1 = time.time()
result = 'drew %d pie charts in %0.4f' % (num, t1 - t0)
open(outputfile('test_graphics_speed_test%s.log' % (isFast+1)), 'w').write(result)
示例4: sample4pie
def sample4pie():
width = 300
height = 150
d = Drawing(width, height)
pc = Pie()
pc.x = 150
pc.y = 50
pc.data = [1, 50, 100, 100, 100, 100, 100, 100, 100, 50]
pc.labels = ["0", "a", "b", "c", "d", "e", "f", "g", "h", "i"]
pc.slices.strokeWidth = 0.5
pc.slices[3].popout = 20
pc.slices[3].strokeWidth = 2
pc.slices[3].strokeDashArray = [2, 2]
pc.slices[3].labelRadius = 1.75
pc.slices[3].fontColor = colors.red
d.add(pc)
legend = Legend()
legend.x = width - 5
legend.y = height - 5
legend.dx = 20
legend.dy = 5
legend.deltax = 0
legend.boxAnchor = "nw"
legend.colorNamePairs = Auto(chart=pc)
d.add(legend)
return d
示例5: make_chart
def make_chart(stats):
drawing = Drawing()
pc = Pie()
pc.x = 150
pc.y = 50
pc.data = stats
pc.labels = ['Heavily Damaged: %s' % stats[0],'Serverly Damaged: %s' % stats[1]]
drawing.add(pc, '')
return drawing
示例6: __add_graph
def __add_graph(self):
drawing = Drawing(200, 100)
data = list()
labels = list()
self.c.drawString(370, 730,
'Distribucion en pesos'.encode('utf-8'))
for acc in self.accounts:
balance = acc.balance
if acc.currency == 'USD':
balance = balance * self.dolar
data.append(balance)
labels.append(acc.name)
pie = Pie()
pie.x = 280
pie.y = 630
pie.height = 100
pie.width = 100
pie.data = data
pie.labels = labels
pie.simpleLabels = 1
pie.slices.strokeWidth = 1
pie.slices.strokeColor = black
pie.slices.label_visible = 0
legend = Legend()
legend.x = 400
legend.y = 680
legend.dx = 8
legend.dy = 8
legend.fontName = 'Helvetica'
legend.fontSize = 7
legend.boxAnchor = 'w'
legend.columnMaximum = 10
legend.strokeWidth = 1
legend.strokeColor = black
legend.deltax = 75
legend.deltay = 10
legend.autoXPadding = 5
legend.yGap = 0
legend.dxTextSpace = 5
legend.alignment = 'right'
legend.dividerLines = 1|2|4
legend.dividerOffsY = 4.5
legend.subCols.rpad = 30
n = len(pie.data)
self.__setItems(n,pie.slices,
'fillColor',self.pdf_chart_colors)
legend.colorNamePairs = [(pie.slices[i].fillColor,
(pie.labels[i][0:20],'$%0.2f' % pie.data[i])) for i in xrange(n)]
drawing.add(pie)
drawing.add(legend)
x, y = 0, 0
renderPDF.draw(drawing, self.c, x, y, showBoundary=False)
示例7: gopie
def gopie():
doc = SimpleDocTemplate("products.pdf")
Catalog = []
style = styles["Normal"]
p = Paragraph("Cranberry Sauce Sales", styles["Heading1"])
Catalog.append(p)
d = Drawing(100, 125)
cht = Pie()
cht.data = sales[0]
cht.labels = months
cht.slices[0].popout = 10
d.add(cht)
Catalog.append(d)
doc.build(Catalog)
示例8: sample4pie
def sample4pie():
d = Drawing(400, 200)
pc = Pie()
pc.x = 150
pc.y = 50
pc.data = [1, 50, 100, 100, 100, 100, 100, 100, 100, 50]
pc.labels = ['0','a','b','c','d','e','f','g','h','i']
pc.slices.strokeWidth=0.5
pc.slices[3].popout = 20
pc.slices[3].strokeWidth = 2
pc.slices[3].strokeDashArray = [2,2]
pc.slices[3].labelRadius = 1.75
pc.slices[3].fontColor = colors.red
d.add(pc)
return d
示例9: test_24_PieCharts
def test_24_PieCharts(self):
from reportlab.lib.styles import getSampleStyleSheet
from reportlab.lib import colors
from reportlab.lib.units import inch
from reportlab.platypus import SimpleDocTemplate, Spacer, Paragraph
from reportlab.pdfbase import pdfmetrics
from reportlab.graphics.shapes import Drawing
from reportlab.pdfbase.ttfonts import TTFont
from reportlab.graphics.charts.piecharts import Pie
pdfmetrics.registerFont(TTFont('chsFont', 'STHeiti Light.ttc'))
stylesheet = getSampleStyleSheet()
elements = []
doc = SimpleDocTemplate("demo.pdf")
elements.append(Paragraph('<font name="chsFont">JY.zenist.song - 俊毅</font>', stylesheet['Title']))
elements.append(Spacer(1,1*inch))
d = Drawing(400,200)
data = [13,5,20,22,37,45]
pc = Pie()
pc.x = 65
pc.y = 15
pc.width = 150
pc.height = 150
pc.data = data
pc.labels = ['a','b','c','d','e','f']
d.add(pc)
elements.append(d)
doc.build(elements)
示例10: __init__
def __init__(self, width, height, labels, data):
IRender.__init__(self, width, height, labels, data)
#self.w = self.width
#self.h = self.height
#data = {}
#for value in self.data:
# data[value[0]] = int(value[1])
#plot = cairoplot.PiePlot('/tmp/tmp.png', data, self.w*2, self.h*2, gradient=True)
##plot.font_size *= 2
#plot.render()
#plot.commit()
#with open('/tmp/tmp.png') as f:
# self.image = Image(StringIO(f.read()), self.w, self.h)
pc = Pie()
pc.width = min(self.height,self.width - 150)
pc.height = min(self.height - 50,self.width)
pc.width = pc.height = min(pc.height, pc.width)
pc.x = self.width / 2 - pc.width / 2
pc.y = self.height / 2 - pc.height / 2
pc.data = [int(line[1]) for line in self.data]
pc.labels = [line[0] for line in self.data]
for i in xrange(len(self.data)):
pc.slices[i].fillColor = COLORS[i % len(COLORS)]
pc.slices[i].strokeColor = COLORS[i % len(COLORS)]
self.drawing = Drawing(self.width, self.height)
self.drawing.add(pc)
示例11: draw_time_repartition
def draw_time_repartition(mandate):
drawing = Drawing(width=180*mm, height=120*mm)
pdf_chart_colors = [HexColor("#fa9d00"), HexColor("#006884"), HexColor("#00909e"), HexColor("#ffd08d"), ]
pie = Pie()
pie.x = 60*mm
pie.y = 35*mm
pie.width = 60*mm
pie.height = 60*mm
pie.slices.strokeWidth = 0.5
pie.slices.fontName = 'Helvetica'
pie.slices.fontSize = 8
pie.data = []
pie.labels = []
titles = []
add_data_and_titles_to_pie(pie, titles, mandate.research_percent, 'research_percent')
add_data_and_titles_to_pie(pie, titles, mandate.tutoring_percent, 'tutoring_percent')
add_data_and_titles_to_pie(pie, titles, mandate.service_activities_percent, 'service_activities_percent')
add_data_and_titles_to_pie(pie, titles, mandate.formation_activities_percent, 'formation_activities_percent')
if len(pie.data) > 0:
drawing.add(pie)
add_legend_to_pie(drawing)
n = len(pie.data)
set_items(n, pie.slices, 'fillColor', pdf_chart_colors)
drawing.legend.colorNamePairs = \
[(pie.slices[i].fillColor, (titles[i], '%0.f' % pie.data[i] + '%')) for i in range(n)]
return drawing
示例12: draw_Pie
def draw_Pie(story, ProjectID):
d = Drawing(140, 180)
pie = Pie()
pie.sideLabels = 1
pie.labels= get_story_name_list(ProjectID)
pie.data = get_story_count_list(ProjectID)
pie.width = 140
pie.height = 140
pie.y = 0
pie.x = 150
d.add(pie)
story.append(d)
示例13: graphout
def graphout(prod_catnames, data):
drawing = Drawing(500, 200)
pie = Pie()
pie.sideLabels = 1
pie.labels = prod_catnames
pie.data = data[0]
pie.width = 140
pie.height = 140
pie.y = 35
pie.x = 125
pie.slices.popout = 5
drawing.add(pie)
return drawing
示例14: report_pdf
def report_pdf(request):
feedbacks = Feedback.objects.all()
## import pygraphviz as P
## A=P.AGraph() # init empty graph
## # set some default node attributes
## A.node_attr['style']='filled'
## A.node_attr['shape']='circle'
## # Add edges (and nodes)
## A.add_edge(1,2)
## A.add_edge(2,3)
## A.add_edge(1,3)
## A.layout() # layout with default (neato)
## png=A.draw(format='png') # draw png
## return HttpResponse(png, mimetype='image/png')
pdf_data = open('cfback/feed.pdf','rb').read()
response = HttpResponse(content_type='application/pdf')
response['Content-Disposition'] = 'attachment; filename="feedback.pdf"'
buffer = BytesIO()
p = Drawing(400,200)
## p.add(String(300,175, "Feedbacks", textAnchor="middle"))
pc = Pie()
pc.x = 150
pc.y = 50
pc.data = [enumerate([i.title[0]]) for i in feedbacks]
pc.labels = [str(y.company) for y in feedbacks]
p.add(pc)
## p.showPage()
p.save()
pdf = buffer.getvalue()
buffer.close
response.write(pdf)
return render_to_response('cfback/feed_report.html', response)
示例15: __init__
def __init__(self, data, labels):
super(PieChart, self).__init__(400,200)
colors = [
HexColor("#0000e5"),
HexColor("#ff0011"),
HexColor("#800000"),
HexColor("#e05897"),
HexColor("#a08ff7"),
HexColor("#8f8ff5"),
HexColor("#c7c7fa"),
HexColor("#800000"),
HexColor("#eb8585"),
HexColor("#d60a0a"),
HexColor("#ffff00"),
HexColor("#1f1feb"),
]
# Create pie chart
pieChart = Pie()
pieChart.x = 40
pieChart.y = 30
pieChart.width = 120
pieChart.height = 120
pieChart.slices.strokeWidth=0.5
data = json.loads(data)
pieChart.data = data
pieChart.labels = []
labels = json.loads(labels.replace("'",'"'))
for d in data:
pieChart.labels.append(str(d))
# Create legend
legend = Legend()
legend.x = 380
legend.y = 60
legend.boxAnchor = 'se'
legend.subCols[1].align = 'right'
legend.colorNamePairs = []
len_data = len(data)
for i in range(0,len_data):
pieChart.slices[i].fillColor = colors[i]
legend.colorNamePairs.append((colors[i],labels[i]))
self.add(pieChart, "pie chart")
self.add(legend, "legend")