Рисование диаграммы в php

pChart — строим графики и диаграммы на PHP. Практика

Всем привет!
По наводке из статьи «pChart — строим графики и диаграммы на PHP» реализовал у себя построение графиков. Вот так выглядит:

Примеры это, конечно, хорошо, но практическая реализация может помочь в понимании. Моё применение под катом.

Фреймвоков для построения графиков много. Есть платные хорошие, есть бесплатные неплохие. Мне pChart показался достаточно удобным и функциональным. Итак к реализации.
pChart работает следующим образом. Заносит данные в свой массив, рисует картинку с графиком, сохраняет её на диск. Затем надо эту картинку отобразить в документе.

addPoints($sum,"Total"); $myData->addPoints($dt,"Labels"); >; $unique = date("Y.m.d_H.i"); $gsFilename_Traffic = "traffic_".$unique.".png"; $myData->setSerieDescription("Labels","Days"); $myData->setAbscissa("Labels"); $myData->setAxisUnit(0," KB"); $serieSettings = array("R"=>229,"G"=>11,"B"=>11,"Alpha"=>100); $myData->setPalette("Total",$serieSettings); $myPicture = new pImage(1250,400,$myData); // setFontProperties(array("FontName"=>"fonts/tahoma.ttf","FontSize"=>8)); $myPicture->setGraphArea(50,20,1230,380); // drawScale(); $myPicture->drawBestFit(array("Alpha"=>40)); // drawLineChart(); $myPicture->drawPlotChart(array("DisplayValues"=>FALSE,"PlotBorder"=>TRUE,"BorderSize"=>0,"Surrounding"=>-60,"BorderAlpha"=>50)); // drawLegend(700,10,array("Style"=>LEGEND_NOBORDER,"Mode"=>LEGEND_HORIZONTAL));// Render("pChartPic\\".$gsFilename_Traffic); ?>

Надеюсь, мой пример поможет новичкам (а, может, и не только). Пример простенький, ничего лишнего. Часто большего и не нужно. Дальше, при желании, можно наворачивать красивости.

Источник

Рисование диаграммы в php

портфолио

Частенько нужно построить диаграмму для оценки тех или иных количественных параметров. В этом нам поможет библиотека GD и ее PHP API. Нижеследующий класс строит простенькую круговую диаграмму.

120, 'f10d0d'=>20, '280df1'=>70, 'dd0ee5'=>45, '000000'=>10); $instance->generate($data);

Как видно из примера, передаем методу generate ассоциативный массив, где ключ — цвет. Минимальный угол — 1 градус, так что если какое-то значение, переведенное в градусы, меньше 1, оно игнорируется. Можно передавать как в процентах, так и в произвольных единицах. Построение происходит с применением пропорций, где сумма всех элементов = 360 градусов.

Из примера получается круговая диаграмма:

По клику видим оригинальное изображение 500х500px. Обращаем внимание, что оно угловатое. Поэтому, либо уменьшаем его непосредственно в браузере (параметрами width и height тэга img), либо ресайзим, например, как описано в этой статье с применением метода resample. Целесообразнее воспользоваться первым вариантом, дабы сэкономить ресурсы сервера.

SomeNumber * @return picture */ public function generate($result = array('808080'=>33, '800080'=>33, '000000'=>33)) < $sum=0; /*Calculate sum of all elements*/ foreach($result AS $row) < $sum += $row; >$image = imagecreatetruecolor(500, 500); imagefilledrectangle($image, 0, 0, 500, 500, imagecolorallocate($image, 255, 255, 255)); $old_grad=0; foreach($result AS $key => $row) < /*split array*/ list($r, $g, $b) = $this->_html2rgb($key); /*Calculate sectors in degrees*/ $grad = $old_grad + round(($row*360)/$sum); /*LibGD rounds degrees.*/ if(round($old_grad) == round($grad)) continue; $color = imagecolorallocate($image, $r, $g, $b); imagefilledarc($image, 250, 250, 500, 500, $old_grad, $grad, $color, IMG_ARC_PIE); $old_grad = $grad; > header('Content-type: image/gif'); imagegif($image); imagedestroy($image); > /* * @param $color * WebColor * * @return array * Color in RGB notation */ private function _html2rgb($color) < if ($color[0] == '#') $color = substr($color, 1); if (strlen($color) == 6) list($r, $g, $b) = str_split($color, 2); else return false; $r = hexdec($r); $g = hexdec($g); $b = hexdec($b); return array($r, $g, $b); >>

Источник

Рисуем графики на PHP

Графики на страницах с помощью PHP необходимы во многих случаях — для создания опросов и голосований, статистики. Иногда можно использовать Google Api для создания графиков, иногда PHP. Исходя из этого, мы рассмотрим сегодня примеры различных графиков на PHP и Javascript.

В статье я буду использовать классы, изъятые из разных платных приложений, в некоторых случаях их использование разрешается, например, если вы их используете на бесплатном, некоммерческом сайте, более подробное описание лицензии можно найти на сайте http://www.pchart.net/license.

Возможности классов pChart

  • множество геометрических фигур (круги, многоугольники, линии);
  • поддержка теней для фигур;
  • возможность использовать собственные ttf шрифты
  • возможность лёгкой установки и настройки;
  • рисование кривых;
  • создание полупрозрачного эффекта для фигур и линий;

Скачать архив классов php для работы с рисованием графиков.

Пример простого графика нарисованного в php:

Пример графика

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

./ index.php chart/ class/ data/ fonts/ palettes/ tmp/
  • index.php — текший страница;
  • class — директория с классами для рисования гарфиков;
  • fonts — шрифты, которые вы можете использовать в графиках;
  • цветовая схема графика;
  • директория в которую помещаяется кэш файл и изображение;

Мы использовали функцию get_poll_pie_chart для того чтобы нарисовать круговую диаграмму. Вместо этой функции можно использовать следующие функции:

  • get_timeline_chart — линейный график с равномерным отображением линии;
  • get_poll_bar_chart — линейный график с динамическим отображением линии на графике;

Пример графика, созданного функцией get_poll_bar_chart :

Пример графика, созданного функцией get_poll_bar_chart:

Пример графика, созданного функцией get_timeline_chart :

Пример графика, созданного функцией get_timeline_chart:

Некоторые графики на php вполне возможно объединить с графиками из Google Charts. Например, круговой график в Google Charts полностью соответствует круговой диаграмме отображённой ранее на странице:

Пример использования графиков Google Charts

Один из возможных вариантов использования графиков Google Charts создание индикатора загрузки файла:

Для создания индикатора можно использовать следующий код:

gChart

Если Вам не хватило инструментов для работы с графиками и диаграммами то можете использовать класс php «gChart» от Google. Все нижеуказанные диаграммы и графики созданы с использованием «gChart».

Источник

Читайте также:  Python bash command line
Оцените статью