本文关于饼图中的个性化icon图标。
要点关注:
- BaseChart.addExtraField用来添加自定义的额外域(field)到图表中。当引用的时候,用{field0}表示第一个添加的额外域,{field1}表示第二个添加的额外域。。。
源代码如下:
#-*-encoding:utf-8 -*-
from pychartdir import *
setLicenseCode("SXZVFNRN9MZ9L8LGA0E2B1BB");#这个是注册,防止有logo产生
data = [72, 18, 15, 12]
depths = [30, 20, 10, 10]
labels = ["Sunny", "Cloudy", "Rainy", "Snowy"]
icons = ["sun.png", "cloud.png", "rain.png", "snowy.png"]
c = PieChart(400, 310, metalColor('0xccccff', 0), '0x000000', 1)
c.setRoundedFrame()
c.setPieSize(200, 180, 100)
c.addTitle("Weather Profile in Wonderland", "timesbi.ttf", 15).setBackground(
'0xccccff', '0x000000', glassEffect())
c.setData(data, labels)
# 将图标作为自定义域添加到图表。
c.addExtraField(icons)
# 用CDML来设置扇区的标签,包含进自定义的图标。
c.setLabelFormat(
"<*block,valign=absmiddle*><*img={field0}*> <*block*>{label}\n{percent}%<*/*>" \
"<*/*>")
c.set3D2(depths)
c.setStartAngle(225)
c.makeChart("iconpie.png")
最终的效果图: