Для выполнения примера необходимо создать html-страницу и выполнить следующие действия:
1. Добавить ссылку на css-файл PP.css. Также нужно добавить ссылки на следующие js-файлы:
PP.js;
PP.GraphicsBase.js;
PP.Charts_Canvas.js;
resources.ru.js.
2. Далее в теге <head> необходимо добавить стиль для блока с идентификатором «chart»:
<style type="text/css">
div#chart {
border: #CCCCCC 1px solid;
padding: 1px;
margin: 1px;
width: 300px;
height: 250px;
}
</style>
3. Затем в теге <head> необходимо добавить сценарий, создающий круговую диаграмму:
<script>
var chart; // Диаграмма
// Создает круговую диаграмму
function createChart() {
// Создаем диаграмму
chart = new PP.Ui.Chart({
Width: 300, // Ширина диаграммы
Height: 250, // Высота диаграммы
Polar: true, // Используем полярные координаты
ParentNode: "chart", // Родительский элемент
SeriesAsRings: true, // Ряды данных отображаются в виде колец
Type: "Pie" // Тип диаграммы
});
}
// Создаёт ряды данных для диаграммы
function createSeries() {
chart.setSeries([createSerie1(), createSerie2()]);
chart.redraw(true);
}
// Создаёт первый ряд данных для круговой диаграммы
function createSerie1() {
var serie = new PP.Ui.ChartPieSerie({
Name: "Австралия", // Наименование ряда
Data: getSerieData1(), // Массив значений
LineColor: getColors()[getColors().length - 1], // Цвет линий
Parent: chart,
Type: "Pie",
Index: 0 // Индекс ряда
});
var point = getChartPiePoint(serie);
// Добавляем точку в ряд данных
addPointToSerie(point, serie);
return serie;
}
// Создаёт второй ряд данных для круговой диаграммы
function createSerie2() {
var serie = new PP.Ui.ChartPieSerie({
Name: "Бразилия", // Наименование ряда
Data: getSerieData2(), // Массив значений
LineColor: getColors()[getColors().length - 1], // Цвет линий
Parent: chart,
Type: "Pie",
Index: 1 // Индекс ряда
});
return serie;
}
// Добавляет точку в ряд данных
function addPointToSerie(point, serie) {
var serieData = serie.getData();
serieData.push({
X: point.getX(),
Y: point.getY(),
Name: "2006",
Color: point.getColor()
});
serie.setData(serieData);
}
// Создаёт массив цветов
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;
}
// Возвращает массив значений для первого ряда данных
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;
}
// Возвращает массив значений для второго ряда данных
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;
}
// Выводит информацию о диаграмме
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("Информация о ряде данных «%s»:", serie.getName());
console.log(" Начальный угол первого сектора: %s", point.getStartAngle());
console.log(" Конечный угол первого сектора: %s", point.getEndAngle());
console.log(" Внешний радиус кольца: %s", point.getRadius());
console.log(" Внутренний радиус кольца: %s", point.getInnerRadius());
}
}
}
// Возвращает точку для ряда данных диаграммы
function getChartPiePoint(serie) {
var chartPiePoint = new PP.Ui.ChartPiePoint({
Parent: serie, // Ряд данных, к которому принадлежит точка
X: getSerieData1().length,
Y: 75,
Color: getColors()[6]
});
chartPiePoint.setInnerRadius(30);
return chartPiePoint;
}
function onReady() {
// Создаём круговую диаграмму createChart(); // Создаём ряды данных для диаграммы createSeries(); // Выводим информацию о диаграмме printChartInfo(); } </script>
4. В теге <body> в качестве значения атрибута «onLoad» указать имя функции для создания диаграммы и добавить блок с идентификатором «chart»:
<body onload="onReady()"> <div id="chart"></div> </body>
В результате выполнения примера на html-странице была размещена круговая диаграмма:

В консоли браузера будет выведена информацию о двух рядах данных круговой диаграммы:
Информация о ряде данных «Австралия»:
Начальный угол первого сектора: 4.71238898038469
Конечный угол первого сектора: 5.0087656458176895
Внешний радиус кольца: 56.25
Внутренний радиус кольца: 0
Информация о ряде данных «Бразилия»:
Начальный угол первого сектора: 5.531934890016809
Конечный угол первого сектора: 0.5600230382486151
Внешний радиус кольца: 112.5
Внутренний радиус кольца: 56.25
См. также: