To execute the example, create an HTML page and perform the following operations:
1. Add a link to CSS file named PP.css. Also add links to the following JS files:
PP.js.
PP.GraphicsBase.js.
PP.Charts_Canvas.js.
resources.ru.js.
2. Within the <head> tag add a style for the block with the "chart" identifier:
<style type="text/css">
div#chart {
border: #CCCCCC 1px solid;
padding: 1px;
margin: 1px;
width: 300px;
height: 250px;
}
</style>
3. Then within the <head> tag add a script that creates a pie chart:
<script>
var chart; // Chart
// Creates pie chart
function createChart() {
// Create chart
chart = new PP.Ui.Chart({
Width: 300, // Chart width
Height: 250, // Chart height
Polar: true, // Use polar coordinates
ParentNode: "chart", // Parent element
SeriesAsRings: true, // Data series are displayed as rings
Type: "Pie" // Chart type
});
}
// Creates data series for chart
function createSeries() {
chart.setSeries([createSerie1(), createSerie2()]);
chart.redraw(true);
}
// Creates the first data series for pie chart
function createSerie1() {
var serie = new PP.Ui.ChartPieSerie({
Name: "Australia", // Series name
Data: getSerieData1(), // Values array
LineColor: getColors()[getColors().length - 1], // Lines color
Parent: chart,
Type: "Pie",
Index: 0 // Series index
});
var point = getChartPiePoint(serie);
// Add point to the data series
addPointToSerie(point, serie);
return serie;
}
// Creates the second data series for pie chart
function createSerie2() {
var serie = new PP.Ui.ChartPieSerie({
Name: "Brazil", // Series name
Data: getSerieData2(), // Values array
LineColor: getColors()[getColors().length - 1], // Lines color
Parent: chart,
Type: "Pie",
Index: 1 // Series index
});
return serie;
}
// Adds point to the data series
function addPointToSerie(point, serie) {
var serieData = serie.getData();
serieData.push({
X: point.getX(),
Y: point.getY(),
Name: "2006",
Color: point.getColor()
});
serie.setData(serieData);
}
// Creates color array
function getColors() {
var colors = [
"rgb(147,61,168)", "rgb(255,217,0)", "rgb(255,145,145)", "rgb(107,188,128)", "rgb(160,203,200)", "rgb(195,214,108)", "rgb(239,193,100)", "rgb(239,193,100)", "rgb(255,191,191)", "rgb(169,216,181)", "rgb(205,227,226)", "rgb(223,233,178)", "rgb(247,223,175)", ];
return colors;
}
// Returns values array for the first data series
function getSerieData1() {
var data = [{
X: 0,
Y: 10,
Name: "2001",
Color: getColors()[0]
}, {
X: 1,
Y: 30,
Name: "2002",
Color: getColors()[1]
}, {
X: 2,
Y: 17,
Name: "2003",
Color: getColors()[2]
}, {
X: 3,
Y: 25,
Name: "2004",
Color: getColors()[3]
}, {
X: 4,
Y: 55,
Name: "2005",
Color: getColors()[4]
}];
return data;
}
// Returns values arrays for the second data series
function getSerieData2() {
var data = [{
X: 0,
Y: 15,
Name: "2001",
Color: getColors()[5]
}, {
X: 1,
Y: 24,
Name: "2002",
Color: getColors()[6]
}, {
X: 2,
Y: 19,
Name: "2003",
Color: getColors()[7]
}, {
X: 3,
Y: 29,
Name: "2004",
Color: getColors()[8]
}, {
X: 4,
Y: 28,
Name: "2005",
Color: getColors()[9]
}];
return data;
}
// Displays information about chart
function printChartInfo() {
for (var i in chart.getSeries()) {
var serie = chart.getSerie(i);
if (serie.getPoints().length > 0) {
var point = serie.getPoints()[i];
console.log("Information about the %s data series:", serie.getName());
console.log(" Start angle of the first sector: %s", point.getStartAngle());
console.log(" End angle of the first sector: %s", point.getEndAngle());
console.log(" Outer radius if the doughnut: %s", point.getRadius());
console.log(" Inner radius of the doughnut: %s", point.getInnerRadius());
}
}
}
// Returns point for the chart data series
function getChartPiePoint(serie) {
var chartPiePoint = new PP.Ui.ChartPiePoint({
Parent: serie, // Data series to which point belongs
X: getSerieData1().length,
Y: 75,
Color: getColors()[6]
});
chartPiePoint.setInnerRadius(30);
return chartPiePoint;
}
function onReady() {
// Create pie chart createChart(); // Create data series for chart createSeries(); // Display information about chart printChartInfo(); } </script>
4. Within the <body> tag specify name of the function creating a chart as the value of the onLoad attribute, and also add a block with the "chart" identifier:
<body onload="onReady()"> <div id="chart"></div> </body>
After executing the example a pie chart is placed on the HTML page:

The browser console shows information about two chart data series:
Information on the Australia data series:
Start angle of the first sector: 4.71238898038469
End angle of the first sector: 5.0087656458176895
Outer radius of the doughnut: 56.25
Inner radius of the doughnut: 0
Information on the Brazil data series:
Start angle of the first sector: 5.531934890016809
End angle of the first sector: 0.5600230382486151
Outer radius of the doughnut: 112.5
Inner radius of the doughnut: 56.25
See also: