В категории: PHP

JPGraph — создание графиков

объектно-ориентированная библиотека для работы с изображениями

JPGraph — создание графиков

JPGraph — это объектно-ориентированная библиотека для создания графики, написанная на PHP и готовая к использованию в любых PHP-скриптах. Для работы с JPGraph вам понадобится PHP версии 4.3.1 и выше.

Посредством данной библиотеки могут создаваться как изображения для просмотра онлайн, так и для сохранения в файл, как легкие с точки зрения кода, как бы созданные на скорую руку графы, так и сложные диаграммы, отвечающие высоким требованиям к разрешению и точности изображения. 

Используя JPGraph, вы сможете создавать графики, диаграммы различных типов как 2D-, так и 3D-проекции, защитные антиспамовые изображения и даже географические карты. В бесплатной версии библиотеки доступно большинство возможностей, но имеется также и профессиональная версия, позволяющая разработчику получить доступ к дополнительным функциям JPGraph. 

Основные особенности JPGraph

Основные отличительные особенности библиотеки

JPGraph — создание графиков
Пример создания нескольких
круговых диаграмм для презентации

Некоторые типы графиков и диаграмм, создаваемых посредством JPGraph:

Переход на профессиональную версию продукта 

JPGraph — создание графиков
Некоторые виды диаграмм доступны только в профессиональной версии продукта

Профессиональная версия библиотеки

В случае если JPGraph будет использован в коммерческих проектах (то есть в ситуации, когда использование библиотеки связано с получением прибыли или усовершенствованием бизнесс-процессов, ориентированных на получение прибыли), разработчики предлагают преобрести профессиональную лицензию. В качестве дополнительных услуг для платных пользователей предоставляются техническая поддержка продукта на протяжении шести месяцев после приобретения, автоматические уведомления об обновлениях, дополнительные возможности библиотеки, недоступные в бесплатной редакции. Среди исключительно платных дополнений:

Инсталляция библиотеки

Установить JPGraph очень просто: достаточно всего лишь использовать include "путь к файлам библиотеки". Библиотека может использоваться как на Unix-, так и на Windows-серверах.

Построение графика

Для наглядной демонстрации возможностей библиотеки создадим простейший линейный график.

Подключаем JPGraph:

include "jpgraph.php";

Подключаем расширение, ответственное за создание линейных графиков:

include "jpgraph_line.php";

Задаем некоторые массивы значений, которые необходимо будет вывести на граф (массив значений абсцисс опционален, его можно не задавать):

$ydata = array(1, 7, 3, 5, 11, 10, 7);
$xdata = array(0, 1, 2, 3, 4, 5, 6);

Создаем экземпляр класса графика, задаем параметры изображения: ширина, высота, название файла в кеше, время хранения изображения в кеше, указываем, выводить ли изображение при вызове функции Stroke (true) или только создать и хранить в кеше (false):

 

$graph = new Graph(300, 200, «auto», 10, true);

Указываем, какие оси использовать:

$graph->SetScale("textlin");

Создаем экземпляр класса линейного графика, передадим ему нужные значения:

$lineplot = new LinePlot($ydata, $xdata);

$lineplot->SetColor("forestgreen");

Выводим кривую на график:

$graph->Add($lineplot);

Даем графику имя:

$graph->title->Set("My Example");

Если есть необходимость давать название на русском языке, то необходимо использовать TTF-шрифты с поддержкой русского языка, например arial. Укажем, какой шрифт и какое оформление (обычное FS_NORMAL, жирный шрифт FS_BOLD и так далее) использовать:

$graph->title->SetFont(FF_ARIAL, FS_NORMAL);
$graph->xaxis->title->SetFont(FF_VERDANA, FS_BOLD);
$graph->yaxis->title->SetFont(FF_TIMES, FS_ITALIC);

Назовем оси:

$graph->xaxis->title->Set("Ось X");
$graph->yaxis->title->Set("Ось Y");

Для наглядности выделим их цветом:

$graph->xaxis->SetColor("#BB0000");
$graph->yaxis->SetColor("#BB0000");

Сделаем кривую на графике толщиной в три пиксела:

$lineplot->SetWeight(3);

Обозначим точки звездочками, задав тип маркера:

$lineplot->mark->SetType(MARK_STAR);

Выведем значения над каждой из точек:

$lineplot->value->Show();

Фон графика зальем градиентом:

$graph->SetBackgroundGradient("ivory", «yellow»);

И в качестве финального штриха добавим эффект тени от всего изображения:

$graph->SetShadow();

Выдаем получившееся изображение в браузер (в случае если при создании объекта graph последний параметр был false, изображение будет сохранено в кеше, но не выдано в браузер): 

$graph->Stroke(); 

JPGraph — создание графиков
Пример создания линейной диаграммы

Приведенный пример показывает создание простейшего графика, но не менее легко и интуитивно могут быть созданы и более сложные графики и диаграммы. 

Получение данных для построения графиков и диаграмм

Значения для вывода не обязательно знать заранее и вводить вручную, как было показано в примере. Данные могут быть получены как базы данных, например MySQL, так и из таблиц Excel, прочитаны из файла, получены из сессии как результаты работы других скриптов. В случае если для создания изображения нужно небольшое количество внешних данных, они могут быть переданы через глобальный массив _GET через адресную строку при вызове файла графика: graph.php?a=1&b=2.

Данные из базы данных могут быть получены путем обработки результатов, возвращаемых обычным SELECT-запросом. Необходимо уделить внимание тому, чтобы все значения, передаваемые для создания изображения, были числовыми. 

Для использования данных, хранящихся в таблицах Excel, необходимо экспортировать данные из таблицы в файл CSV (comma separated values), а затем либо использовать собственную процедуру чтения и разбора данных из файла, либо использовать утилиту ReadCSV из jpgraph_utils.php. Для этого необходимо выполнить следующие действия. 

Подключить файл с утилитами:

include "jpgraph_utils.php";

Считать данные из файла:

$n = ReadFileData::FromCSV('data.csv', $datay);

В данной статье были рассмотрены только основы использования библиотеки JPGraph. Намного более полную информацию, советы, ответы на вопросы можно получить на официальном сайте.

Источник: hostinfo.ru

JPGraph — создание графиков JPGraph — создание графиков JPGraph — создание графиков JPGraph — создание графиков JPGraph — создание графиков JPGraph — создание графиков JPGraph — создание графиков JPGraph — создание графиков JPGraph — создание графиков JPGraph — создание графиков JPGraph — создание графиков JPGraph — создание графиков JPGraph — создание графиков JPGraph — создание графиков

-