|
![]() |
|
||||
|
|
|
Statistika přístupů v PHP – sloupcové
grafy Dnes si povíme, jak s pomocí vynikající
aplikace JpGraph vytvořit profesionální sloupcové grafy zachycující různé
statistické veličiny. V našem případě to bude hodinová
a denní návštěvnost. Aplikace JpGraph a její instalace byla před nedávnem popisována v článku Profesionální grafy v PHP snadno a rychle. V dnešním článku vám představím dva sloupcové grafy, příště to budou dva koláčové grafy. Snažil jsem se vytvořit takové grafy, na kterých je dobře vidět, co všechno můžete měnit a nastavovat tak, aby vám graf plně vyhovoval. Grafy budeme vkládat do souboru stat.php prostřednictvím tagu <img>. V parametru sql_access_date budeme předávat období, pro které se bude graf vytvářet. // graf echo '<p align="center"><img src="hourly.php?sql_access_date=' . URLEncode($sql_access_date) . '" border="0" alt=""></p>'; Protože JpGraph pracuje standardně s kódováním ISO-8859-2, vložíme do souboru function.php funkci Win_Iso($text), která převádí text v kódování Windows-1250 na ISO 8859-2. Pokud pracujete na jiném systému než Windows, pak tuto funkci potřebovat nebudete. Soubor umístíme přímo do složky jpgraph/src/. function
Win_Iso($text)
{ return StrTr($text,"ŠšŽžĽľŤťŚŹśźĄą","©ą®ľĄµ«»¦¬¶Ľˇ±"); } Hodinová návštěvnost (hourly.php)Výsledkem našeho snažení bude např. tento graf:
Skripty pro jednotlivé grafy budou ve zvláštních souborech umístěných standardně v adresáři jpgraph/src/counter. Pro statistiku hodinové návštěvnosti to je soubor hourly.php. Vzhledem k tomu, že vytvoření grafu je dostatečně okomentováno přímo ve skriptu, nebudu se nyní příliš rozepisovat. Navíc práce s aplikací JpGraph je natolik intuitivní a relativně jednoduchá, že se s ní naučíte pracovat během několika desítek minut. include("db.php");
// připojení k databázi include("../function.php"); // obsahuje funkci WinIso() // načtení souborů nutných pro vytvoření grafu include("../jpgraph.php"); include("../jpgraph_bar.php"); $sql_access_date = StripSlashes(URLDecode($sql_access_date)); // datum // data pro osu Y for($i=0;$i<=23;$i++): $query = MySQL_Query("SELECT count(*) FROM access WHERE HOUR(access_date) = '$i' AND $sql_access_date"); $result = MySQL_Fetch_Array($query); $data[] = $result["count(*)"]; // počet přístupů v jednotlivých hodinách endfor; // graf (velikost) a měřítko $graph = new Graph(535,250); $graph->SetScale("textlin"); $graph->img->SetMargin(45,30,25,40); // velikost okrajů $graph->SetColor("aliceblue"); // barva pozadí grafu $graph->SetMarginColor("gray9"); // barva okraje grafu $graph->SetFrame(); // orámování $graph->yaxis->scale->SetGrace(15); // nastavení měřítka osy Y // titulek a názvy os $graph->title->Set(Win_Iso("Hodinová návštěvnost")); $graph->xaxis->title->Set("Hodina"); $graph->yaxis->title->Set("Počet přístupů"); // nastavení fontů titulku a názvů os $graph->title->SetFont(FF_FONT2,FS_BOLD); $graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD); $graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD); // sloupcový graf $bplot = new BarPlot($data); $bplot->SetFillColor("deepskyblue"); // barva sloupců $bplot->SetShadow(); // stín sloupců // formát, font, barva a úhel popisků u sloupců $bplot->value->SetFormat("%d"); $bplot->value->SetFont(FF_FONT1,FS_NORMAL); $bplot->value->SetColor("blue"); $bplot->value->SetAngle(90); $bplot->value->Show(); // přidej sloupcový graf $graph->Add($bplot); // zobraz graf $graph->Stroke(); Denní návštěvnost (daily.php)
include ("db.php");
// připojení k databázi include("../function.php"); // obsahuje funkci WinIso() // načtení souborů nutných pro vytvoření grafu include ("../jpgraph.php"); include ("../jpgraph_bar.php"); $sql_access_date = StripSlashes(URLDecode($sql_access_date)); // datum // data pro osu Y for($i=0;$i<=6;$i++): $query = MySQL_Query("SELECT count(*) FROM access WHERE WEEKDAY(access_date) = '$i' AND $sql_access_date"); $result = MySQL_Fetch_Array($query); $datay[] = $result["count(*)"]; // počet přístupů v jednotlivých dnech endfor; // data pro osu X $datax = Array("Pondělí", "Úterý", "Středa", "Čtvrtek", "Pátek", "Sobota", "Neděle"); // graf (velikost) a měřítko $graph = new Graph(400,200); $graph->SetScale("textlin"); $graph->img->SetMargin(40,20,30,30); // velikost okrajů $graph->SetMarginColor("oldlace"); // barva pozadí grafu $graph->SetShadow(); // stín grafu // nastavení titulku (font, barva) $graph->title->Set(Win_Iso("Denní návštěvnost")); $graph->title->SetFont(FF_FONT2,FS_BOLD); $graph->title->SetColor("darkred"); // nastavení fontů u obou os $graph->xaxis->SetFont(FF_FONT1,FS_NORMAL); $graph->yaxis->SetFont(FF_VERDANA,FS_NORMAL,10); // popisky na ose X $graph->xaxis->SetTickLabels($datax); // sloupcový graf $bplot = new BarPlot($datay); $bplot->SetWidth(0.6); // šířka sloupců $bplot->SetFillGradient("gold4","gold2",GRAD_HOR); // nastavení barevného přechodu u sloupců $bplot->SetColor("navy"); // barva rámečku sloupců // přidej sloupcový graf $graph->Add($bplot); // zobraz graf $graph->Stroke(); Příštím dílem, ve kterém dokončíme vytváření profesionálních grafů, bude seriál prozatím ukončen a konečně si budete moci kompletní aplikaci stáhnout. Předchozí díly:Statistika přístupů v PHP – kalendářStatistika přístupů v PHP – hodinová a denní návštěvnost Statistika přístupů v PHP – regionální lokalizace Statistika přístupů v PHP – domény nejvyšší úrovně Statistika přístupů v PHP – vyhledávací fráze Statistika přístupů v PHP – odkud přicházejí návštěvníci Statistika přístupů v PHP – rozlišení a barevná hloubka Statistika přístupů v PHP – detekce operačního systému Statistika přístupů v PHP – detekce prohlížeče Statistika přístupů v PHP – počet unikátních návštěvníků Michal Kebrt (17.9.
2002) |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
| © Zoner software, s.r.o., všechna práva vyhrazena, tento server dodržuje právní předpisy o ochraně osobních údajů. |