This example demonstrates using
CDML and and
parameter substitution to include icons in sector labels.
- The icons file names are added to the chart as an extra field using PieChart.addExtraField.
- The sector label format is designed to include the icon on the left, and a text block containing the text label and percentages in two lines on the the right. The format is represented using CDML, with the fields represented using parameter substitution.
- The sector label format is set into the pie chart using PieChart.setLabelFormat.
[File: pythondemo/iconpie.py] (The CGI version is available as "pythondemo_cgi/iconpie.py".)
#!/usr/bin/python
from pychartdir import *
#The data for the pie chart
data = [72, 18, 15, 12]
#The depths for the sectors
depths = [30, 20, 10, 10]
#The labels for the pie chart
labels = ["Sunny", "Cloudy", "Rainy", "Snowy"]
#The icons for the sectors
icons = ["sun.png", "cloud.png", "rain.png", "snowy.png"]
#Create a PieChart object of size 400 x 300 pixels, with 0xffeecc as the
#background color, a black border, and 1 pixel 3D border effect
c = PieChart(400, 300, 0xffeecc, 0, 1)
#Set the center of the pie at (200, 175) and the radius to 100 pixels
c.setPieSize(200, 175, 100)
#Add a title box using Times Bold Italic/14 points as font and 0xffcccc as
#background color
c.addTitle("Weather Profile in Wonderland", "timesbi.ttf", 14).setBackground(
0xffcccc)
#Set the pie data and the pie labels
c.setData(data, labels)
#Add icons to the chart as a custom field
c.addExtraField(icons)
#Configure the sector labels using CDML to include the icon images
c.setLabelFormat(
"<*block,valign=absmiddle*><*img={field0}*> <*block*>{label}\n{percent}%" \
"<*/*><*/*>")
#Draw the pie in 3D
c.set3D2(depths)
#Set the start angle to 225 degrees may improve layout when the depths of the
#sector are sorted in descending order, because it ensures the tallest sector is
#at the back.
c.setStartAngle(225)
#output the chart
c.makeChart("iconpie.png")
|
© 2003 Advanced Software Engineering Limited. All rights reserved.