Здравствуйте читатели! В этом посте я хотел рассказать вам о построении графиков с помощью pChart. Сложного в нем ничего нет, но стандартно(позже, на сайте девелопера нашел и MySQL инфу) он берет данные из файла. Мне это никак не подходило под свои нужны, и я начал ковыряться в скрипте. Результат ниже.
Итак, что нам понадобится:
1. Модуль GD(для апаче естественно).
2. Скачать библиотеку pChart 1.27.
Чтобы долго все это дело не описывать, я сразу дам готовый скрипт для построения графиков, данные берутся из БД.
Я использовал его для показа айди заказчика и сумму его заказа. Скрипт смотрите ниже.
<?
/* Include the pData class */
include 'pChart/pData.class';
include 'pChart/pCache.class';
include 'pChart/pChart.class';
//создаем объект данных
$myData = new pData();
/* Коннектимся к MySQL базе данных */
$db = mysql_connect("localhost", "root", "Ld7n|/fNf");
if ( $db == "" ) { echo " DB Connection error...rn"; exit(); }
mysql_select_db("dle",$db);
$Requete = "SELECT `summa`,`id` FROM `maz_shop_orders`";
$result = mysql_query($Requete,$db);
while($row = mysql_fetch_array($result))
{
$myData->AddPoint($row["id"],"id");
$myData->AddPoint($row["summa"],"summa");
}
//устанавливаем точки с датами
//на ось абсцисс
$myData->SetAbsciseLabelSerie("id");
//помечаем данные как предназначеные для
//отображения
$myData->AddSerie("summa");
//устанавливаем имена
$myData->SetSerieName(
mb_convert_encoding("Сумма",'utf-8','windows-1251'),
"summa");
//создаем график шириной в 1000 и высотой в 500 px
$graph = new pChart(1000,500);
//устанавливаем шрифт и размер шрифта
$graph->setFontProperties("Fonts/tahoma.ttf",10);
//координаты левой верхней вершины и правой нижней
//вершины графика
$graph->setGraphArea(85,30,950,400);
//рисуем заполненный четырехугольник
$graph->drawFilledRoundedRectangle(7,7,993,493,5,240,
240,240);
//теперь незаполненный для эффекта тени
$graph->drawRoundedRectangle(5,5,995,495,5,230,
230,230);
//прорисовываем фон графика
$graph->drawGraphArea(255,255,255,TRUE);
//устанавливаем данные для графиков
$graph->drawScale($myData->GetData(),
$myData->GetDataDescription(),
SCALE_NORMAL,150,150,150,true,0,2);
//рисуем сетку для графика
$graph->drawGrid(4,TRUE,230,230,230,50);
//прорисовываем линейные графики
$graph->drawLineGraph($myData->GetData(),
$myData->GetDataDescription());
// рисуем точки на графике
$graph->drawPlotGraph($myData->GetData(),
$myData->GetDataDescription(),3,2,255,255,255);
// пишем в подвале некоторый текст
$graph->setFontProperties("Fonts/tahoma.ttf",10);
$graph->drawTextBox(870,450,990,460,"Powered By pChart",
0,250,250,250,ALIGN_CENTER,TRUE,-1,-1,-1,30);
$graph->drawTextBox(805,470,990,480,"http://pchart.sourceforge.net",
0,250,250,250,ALIGN_CENTER,TRUE,-1,-1,-1,30);
$graph->drawTextBox(15,450,140,460,"Developed By kv4nt",
0,250,250,250,ALIGN_CENTER,TRUE,-1,-1,-1,30);
$graph->drawTextBox(10,470,140,480,"http://www.piarcom.com",
0,250,250,250,ALIGN_CENTER,TRUE,-1,-1,-1,30);
//ложим легенду
$graph->drawLegend(90,35,$myData->GetDataDescription(),255,255,255);
//Пишем заголовок
$graph->setFontProperties("Fonts/tahoma.ttf",10);
$graph->drawTitle(480,22,
mb_convert_encoding("График",
'utf-8','windows-1251'),
50,50,50,-1,-1,true);
//выводим в браузер
$graph->Stroke();
/**
* @return array
*/
?>
Что использовалось в скрипте:
localhost — хост БД
root — юзер БД
Ld7n|/fNf — пароль БД
maz_shop_orders — база данных
id — таблица
summa — таблица
Больше вам собсно ничего и не нужно.
Дополнительная информация:
1. Для вывода в браузере в своих CMS или просто на других страницах, используйте <img src="/grafik.php">
2. На сайте производителя pChart есть примеры для вывода графиков другого типа. Там вы точно найдете для себя подходящий.
Всем спасибо за внимание! Удачи с выводом графиков!
Автор: kvantik