Рисование графиков в PHP
Очень часто при создании каких-нибудь сервисов приходится рисовать различные графики. Например, если Вы делаете рекламную сеть, то можно построить зависимости количества переходов по рекламным материалам по дням. Если это какой-нибудь Интернет-магазин, то можно строить графики доходов магазина. Как рисовать графики в PHP, я разберу ниже.
Во-первых, можно всё делать самостоятельно, написав свою библиотеку. Здесь надо учитывать, что координаты в PHP идут на увеличение вправо и вниз, тогда как в математике они идут вправо и вверх. В остальном, ничего особо сложного.
Однако, если писать особо не хочется, то есть просто замечательнейшая библиотека, позволяющая строить самые разнообразные графики, диаграммы, гистограммы и прочее. Целая куча различных возможностей (подписывание осей, рисование нескольких графиков на одной оси, рисование порогов, отображение легенды и прочего) делают данную библиотеку по-настоящему универсальной.
Библиотека называется pChart: ознакомиться с документацией и скачать pChart.
Предлагаю Вашему вниманию пример:
<?php
/* Подключаем классы */
require_once "pChart/pData.class";
require_once "pChart/pChart.class";
$DataSet = new pData(); // Создаём объект pData
$DataSet->AddPoint(array(0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100), "Serie1"); // Загружаем данные графика 1
$DataSet->AddPoint(array(0, 1, 8, 27, 64, 125, 216, 343, 512, 729, 1000), "Serie2"); // Загружаем данные графика 2
$DataSet->AddAllSeries(); // Добавить все данные для построения
$Test = new pChart(700, 230); // Рисуем графическую плоскость
$Test->setFontProperties("Fonts/tahoma.ttf", 8); // Установка шрифта
$Test->setGraphArea(50, 30, 585, 200); // Установка области графика
$Test->drawFilledRoundedRectangle(7, 7, 693, 223, 5, 240, 240, 240); // Выделяем плоскость прямоугольником
$Test->drawRoundedRectangle(5, 5, 695, 225, 5, 230, 230, 230); // Делаем контур графической плоскости
$Test->drawGraphArea(255, 255, 255, true); // Рисуем графическую плоскость
$Test->drawScale($DataSet->GetData(), $DataSet->GetDataDescription(), SCALE_NORMAL, 150, 150, 150, true, 0, 2); // Рисуем оси и график
$Test->drawGrid(4, true, 230, 230, 230, 50); // Рисуем сетку
$Test->drawLineGraph($DataSet->GetData(),$DataSet->GetDataDescription()); // Соединяем точки графика линиями
$Test->drawPlotGraph($DataSet->GetData(),$DataSet->GetDataDescription(), 3, 2, 255, 255, 255); // Рисуем точки
$Test->drawTitle(50, 22, "MyRusakov.ru", 50, 50, 50, 585); // Выводим заголовок графика
$Test->Stroke(); // Выводим график в окно браузера;
?>
В данном примере мы строим параболу и кубическую параболу, а затем выводим этот график в браузер. Также можно сохранять график в файл, для этого вместо Stroke() надо использовать метод Render("filename.png").
Возможностей у библиотеки масса, я лишь показал самые-самые базовые. Поэтому если Вам нужно построение графиков на сайте через PHP, то обязательно ознакомьтесь с документацией pChart.
-
- Михаил Русаков
Комментарии (4):
здравствуйте вот хочу попробовать запустить Ваш пример, создаю новый документ, копирую в него код, создаю 2 папки с классами и шрифтами, запускаю в браузере - пустое белое окно...
Ответить
Причин может быть миллиард, гадать тут бесполезно. Учитесь искать ошибки самостоятельно: http://myrusakov.ru/php-finderror.html Это действительно очень важно!
Ответить
Привет! подскажи пожалуйста, у меня есть 2 массива со значениями по оси х и по y. Скажем arr1(10, 20, 40, 80, 160, 320) и arr2(-100, -10, 80, 1000, 5000, 20000) Как сделать что бы мои значения были и по оси х и по y, и все в масштабе, + отображались значения точек. Спасибо.
Ответить
В своей работе использую библиотеку FusionCharts. Мне нравиться простая установка диаграмм и графиков по шаблону. 1. Подключаю Java Script библиотеку FusionCharts. 2. Создаю DIV для вывода графика (id="chart_container"). 3. Вставляю данные графика в массив chartData. 4. Редактирую массив chartConfig. Это дизайн и параметры диаграммы. 5. Вызываю функцию FusionCharts.ready(function(){ var fusioncharts = new FusionCharts(chartConfig);fusioncharts.render(); }); Подробный код и демонстрация примера: http://profi.spage.me/jquery/creation-of-graphs-chart-and-diagrams-on-java-script
Ответить
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.