Скачав и распаковав rar-архив с последней версией pChart с официального сайта проекта (на момент написания статьи последняя версия имела номер 1.27d), вы увидите различные каталоги и файлы с именами Example(номер).php. Так вот, 90% этого добра нам не нужно. Ну разве что имеет смысл изучить примеры. Реальную ценность представляют только два файла – pChart/pData.class и pChart/pChart.class.
В первом содержится описание класса pData. Он предназначен для хранения данных, которые в дальнейшем будут выведены на график/гистограмму – подписи по осям, непосредственно выводимые значения и тд. В файле pChart.class содержится описание класса pChart, отвечающего за само рисование графиков. Данные для графиков он получает от класса pData.
Описание атрибутов и методов классов pChart и pData можно найти в самих *.class файлах, или посмотреть, как эти классы используются в примерах. В этой статье мы рассмотрим простенький скрипт, рисующий гистограмму.
<?php
// подключаем pChart
include "./pChart/pChart.class";
include "./pChart/pData.class";
// генерируем случайные данные для вывода на гистограмму
$series = array();
mt_srand(time());
for($i = 0; $i < 18; $i++) {
$series[0][] = "$i.12";
$series[1][] = 5000 + mt_rand(-500, +500);
$series[2][] = $series[1][$i] - mt_rand(100, 200);
}
// теперь помещаем данные в специальный класс - pData
$data = new pData;
$n = 0;
foreach($series as $k = $v) {
if(++$n == 1) {
$keySerie = "$k"; // $series[0] - это подписи по оси абсцисс
$ksSize = count($v);
}
$data-AddPoint($v, "$k");
}
$data-AddAllSeries();
$data-RemoveSerie($keySerie);
$data-SetAbsciseLabelSerie($keySerie);
// теперь готовим гистограмму
$chart = new pChart(512,192);
// задаем шрифт
$chart-setFontProperties("tahoma.ttf", 8);
// какую часть изображения выделить под гистограмму?
$chart-setGraphArea(50, 10, 512, 150);
// рисуем шкалу; описание аргументов метода - в файле pChart.class
$chart-drawScale($data-GetData(),$data-GetDataDescription(),
SCALE_NORMAL | SCALE_START0 /*mode*/,/* rgb */0,0,0,TRUE,90,2,TRUE);
// рисуем сами "столбики"
$chart-drawBarGraph($data-GetData(),$data-GetDataDescription(),
FALSE /* shadow */, 100 /* alpha */, FALSE /* black border */);
// выводим результат
$chart-Stroke();
?>
Полный исходный код примера можно скачать здесь
Вот так будет выглядеть результат работы скрипта:
Цвета столбцов и угол наклона подписей по оси абсцисс при желании можно поменять. Также без особого труда можно добавить название графика и легенду.
Как видите, pChart – мощная и достаточно простая в использовании библиотека, распространяемая при этом абсолютно бесплатно. К недостаткам pChart можно отнести относительно невысокую скорость работы. Например, модуль GD::Graph, активно используемый программистами на Perl, работает ощутимо быстрее.