circlelabelpie.cfm
Back to Chart Graphics
// ChartDirector for ColdFusion API Access Point
cd = CreateObject("java", "ChartDirector.CFChart");
// A utility to allow us to create arrays with data in one line of code
function Array() {
var result = ArrayNew(1);
var i = 0;
for (i = 1; i LTE ArrayLen(arguments); i = i + 1)
result[i] = arguments[i];
return result;
}
// Function to create the demo charts
function createChart(img)
{
// Declare local variables
var data = 0;
var labels = 0;
var c = 0;
var ret = 0;
// The data for the pie chart
data = Array(25, 18, 15, 12, 30, 35);
// The labels for the pie chart
labels = Array("Labor", "Licenses", "Taxes", "Legal", "Facilities", "Production")
;
// Create a PieChart object of size 300 x 300 pixels
c = cd.PieChart(300, 300);
if (img EQ "0") {
//============================================================
// Draw a pie chart where the label is on top of the pie
//============================================================
// Set the center of the pie at (150, 150) and the radius to 120 pixels
c.setPieSize(150, 150, 120);
// Set the label position to -40 pixels from the perimeter of the pie (-ve
// means label is inside the pie)
c.setLabelPos(-40);
} else {
//============================================================
// Draw a pie chart where the label is outside the pie
//============================================================
// Set the center of the pie at (150, 150) and the radius to 80 pixels
c.setPieSize(150, 150, 80);
// Set the sector label position to be 20 pixels from the pie. Use a join
// line to connect the labels to the sectors.
c.setLabelPos(20, cd.LineColor);
}
// Set the label format to three lines, showing the sector name, value, and
// percentage. The value 999 will be formatted as US$999K.
c.setLabelFormat("{label}<*br*>US${value}K<*br*>({percent}%)");
// Set the pie data and the pie labels
c.setData(data, labels);
// Explode the 1st sector (index = 0)
c.setExplode(0);
// Output the chart
ret = StructNew();
ret.imageURL = c.makeSession(GetPageContext(), "chart" & img);
// Include tool tip for the chart
ret.imageMap = c.getHTMLImageMap("", "",
"title='{label}: US${value}K ({percent}%)'");
return ret;
}
chart0 = createChart(0);
chart1 = createChart(1);
Circular Label Layout