Как стать автором
Обновить

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

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

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

Фреймвоков для построения графиков много. Есть платные хорошие, есть бесплатные неплохие. Мне pChart показался достаточно удобным и функциональным. Итак к реализации.
pChart работает следующим образом. Заносит данные в свой массив, рисует картинку с графиком, сохраняет её на диск. Затем надо эту картинку отобразить в документе.
<head>
<?php
	/* Include all the classes pChart*/
	include("class/pDraw.class.php");
	include("class/pImage.class.php");
	include("class/pData.class.php");
?>
</head>
<?php
$myData = new pData();

//Тут должно быть соединение с базой, выполнение запроса.
while (list($dt,$sum) = mysql_fetch_row($result)) {
	/* Сохранение данных в массив */
	$myData->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); // <-- Размер холста
$myPicture->setFontProperties(array("FontName"=>"fonts/tahoma.ttf","FontSize"=>8));
$myPicture->setGraphArea(50,20,1230,380); // <-- Размещение графика на холсте
$myPicture->drawScale();
$myPicture->drawBestFit(array("Alpha"=>40)); // <-- Прямая статистики

$myPicture->drawLineChart();
$myPicture->drawPlotChart(array("DisplayValues"=>FALSE,"PlotBorder"=>TRUE,"BorderSize"=>0,"Surrounding"=>-60,"BorderAlpha"=>50)); // <-- Точки на графике
$myPicture->drawLegend(700,10,array("Style"=>LEGEND_NOBORDER,"Mode"=>LEGEND_HORIZONTAL));// <-- Размещение легенды
$myPicture->Render("pChartPic\\".$gsFilename_Traffic);
?>
<br /><h3>Трафик</h3>
<br /><IMG SRC="pChartPic/
<?php echo $gsFilename_Traffic; ?>
" />

Надеюсь, мой пример поможет новичкам (а, может, и не только). Пример простенький, ничего лишнего. Часто большего и не нужно. Дальше, при желании, можно наворачивать красивости.
Теги:
Хабы:
Всего голосов 12: ↑8 и ↓4+4
Комментарии6

Публикации

Истории

Работа

PHP программист
113 вакансий

Ближайшие события

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
11 сентября
Митап по BigData от Честного ЗНАКа
Санкт-ПетербургОнлайн
14 сентября
Конференция Practical ML Conf
МоскваОнлайн
19 сентября
CDI Conf 2024
Москва
20 – 22 сентября
BCI Hack Moscow
Москва
24 сентября
Конференция Fin.Bot 2024
МоскваОнлайн
25 сентября
Конференция Yandex Scale 2024
МоскваОнлайн
28 – 29 сентября
Конференция E-CODE
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
30 сентября – 1 октября
Конференция фронтенд-разработчиков FrontendConf 2024
МоскваОнлайн