Очень часто при создании каких-нибудь сервисов приходится рисовать различные графики . Например, если Вы делаете рекламную сеть, то можно построить зависимости количества переходов по рекламным материалам по дням. Если это какой-нибудь Интернет-магазин, то можно строить графики доходов магазина. Как рисовать графики...

Рисование графиков в 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.