Для выполнения примера необходимо создать 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: 450px; height: 400px; } </style>
3. Затем в теге <head> необходимо добавить сценарий, создающий инвертированную сглаженную диаграмму с маркерами:
<script> var chart; // Создает диаграмму function createChart() { // Создаем сглаженную диаграмму chart = new PP.Ui.Chart({ Width: 450, // Ширина диаграммы Height: 400, // Высота диаграммы ParentNode: "chart", Type: "Spline", // Тип диаграммы // Ось X XAxis: { Categories: ["2001", "2002", "2003", "2004", "2005", "2006", "2007", "2008", "2009", "2010", "2011", "2012", "2013", "2014" ], Labels: {
Enabled: true } }, // Ось Y YAxis: { Labels: { Enabled: true }, Max: 60, Min: 0 },
// Дополнительная ось Y YSAxis: { Enabled: false }, Inverted: true, // Инвертированная диаграмма MarkersEnabled: true, // Отображаем маркеры для рядов данных MarkersSymbol: "square" // Отображаем маркеры в виде прямоугольников }) } // Создаёт ряды данных для сглаженной диаграммы function createSeries() {
chart.setSeries([createSerie1(), createSerie2()]); chart.redraw(true); } // Возвращает маркер для ряда данных диаграммы function getMarker(borderColor) { var marker = { BorderColor: borderColor, BorderWidth: 2, Color: "rgb(255, 255, 255)", Enabled: chart.getMarkersEnabled(), Radius: 8, Symbol: chart.getMarkersSymbol(), };
return marker; } // Создаёт первый ряд данных для сглаженной диаграммы function createSerie1() { var serie = new PP.Ui.ChartSplineSerie({ Data: getSerieData1(), Name: "Австралия", // Наименование ряда Color: getColors()[0], LineColor: getColors()[4], // Цвет линий Marker: getMarker(getColors()[0]), // Маркер для ряда данных диаграммы Parent: chart, Type: "Spline", });
return serie; } // Создаёт второй ряд данных для сглаженной диаграммы function createSerie2() { var serie = new PP.Ui.ChartSplineSerie({ Name: "Бразилия", // Наименование ряда Data: getSerieData2(), // Массив значений Color: getColors()[1], LineColor: getColors()[5], // Цвет линий Marker: getMarker(getColors()[1]), // Маркер для ряда данных диаграммы Parent: chart, Type: "Spline" }); return serie; }
// Создаёт массив цветов 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] }, {
X: 5, Y: 51, Name: "2006", Color: getColors()[0] }, { X: 6, Y: 47, Name: "2007", Color: getColors()[1] }, { X: 7, Y: 33, Name: "2008", Color: getColors()[2] }, {
X: 8, Y: 39, Name: "2009", Color: getColors()[3] }, { X: 9, Y: 29, Name: "2010", Color: getColors()[4] }, { X: 10, Y: 22, Name: "2011", Color: getColors()[0] }, {
X: 11, Y: 24, Name: "2012", Color: getColors()[1] }, { X: 12, Y: 16, Name: "2013", Color: getColors()[2] }, {
X: 13, Y: 14, Name: "2014", Color: getColors()[3] }]; 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] }, { X: 5, Y: 25, Name: "2006", Color: getColors()[0] }, {
X: 6, Y: 29, Name: "2007", Color: getColors()[1] }, { X: 7, Y: 33, Name: "2008", Color: getColors()[2] }, { X: 8, Y: 36, Name: "2009", Color: getColors()[3] }, {
X: 9, Y: 42, Name: "2010", Color: getColors()[4] }, { X: 10, Y: 48, Name: "2011", Color: getColors()[0] }, { X: 11, Y: 51, Name: "2012", Color: getColors()[1] }, {
X: 12, Y: 56, Name: "2013", Color: getColors()[2] }, { X: 13, Y: 60, Name: "2014", Color: getColors()[3] }]; return data; }
// Обновляем маркеры у рядов данных диаграммы function updateChartMarkers() { for (var i in chart.getSeries()) { var serie = chart.getSeries()[i]; // Получаем настройки ряда данных диаграммы var states = serie.getStates(); states.Normal.Marker.Enabled = chart.getMarkersEnabled(); states.Normal.Marker.Symbol = chart.getMarkersSymbol(); } // Обновляем ряды данных диаграммы chart.redrawSeries(true); } // Устанавливает размер маркеров для рядов данных function setMarkersRadius(radius) { for (var i in chart.getSeries()) { var serie = chart.getSeries()[i]; serie.getMarker().Radius = radius; }
// Обновляем ряды данных диаграммы chart.redrawSeries(true); } function onReady() { // Создаём сглаженную диаграмму createChart(); // Создаём ряды данных для диаграммы createSeries(); // Перерисовываем диаграмму chart.redraw(true); } </script>
4. В теге <body> в качестве значения атрибута «onLoad» указать имя функции для создания диаграммы и добавить блок с идентификатором «chart»:
<body onload="onReady()"> <div id="chart"></div> </body>
В результате выполнения примера на html-странице была размещена инвертированная сглаженная диаграмма с маркерами в виде прямоугольников:
См. также: