
Opis dotyczy zastosowania kodu phpWykres jest to funkcja rysująca wykres słupkowy napisana w języku PHP. Kod działa w standardowym środowisku PHP bez specjalnych dodatkowych bibliotek.
Kod podesłał mi kolega Zygmunta, który pewnie znalazł go w przepastnych zasobach internetu. Autor pomysłu i pierwotnego źródła nie jest mi znany mimo tego dziękuję mu. Kod jest bardzo cenny edukacyjnie ale i funkcjonalnie.
Opiszę praktyczne zastosowanie tej funkcji, która dynamicznie pobiera dane i wyświetla je jako wykres słupkowy. Opis oparty jest o rzeczywiste pomiary promieniowania ultrafioletowego ale nie tylko.
Założenia:
- korzystamy z bazy danych i języka SQL
- pomiary gromadzone są w tabeli, która ma kolumny DataCzas oraz UV
- wykres będzie prezentował dane z godzin od 6:00 do 19:00
- wartości UV są sumowane w zakresach co godzinę czyli wartość średnia z godziny razy 60 minut
- otrzymane godzinne wartości zapisywane są do pliku, który jest źródłem danych dla funkcji phpWykres

istotna część kodu, która tworzy plik z danymi
aby było co zapisywać trzeba zadać pytanie do bazy:
SELECT floor(UNIX_TIMESTAMP($vDCzas)/3600)*3600, avg($sonda)*60 FROM $nazwaTabeli
WHERE DataCzas between $dawkiOd and $dawkiDo and $sonda<>-888 group by 1 order by 1 limit 7000″;
funkcja oraz procedura czytająca dane są w osobnym pliku phpWykres.php. Wyświetlenie wykresu następuje w reakcji na wpis:
img src=”phpWykres.php”
Odczytanie danych z pliku wykonałem poniższym kodem, który jest w środku pliku phpWykres.php i jest automatycznie wykonywany przed każdym wygenerowaniem wykresu:
$output = Array();
foreach(file($filename) as $w) {
$w = explode(’|’, $w);
$output[ $w[0] ] = $w[1]; }
Generowanie grafiki wykresu:
$wykres = gen_wykres($output);
imagepng($wykres);
Działający, kompletny dostępny pod tym adresem.
Uwaga: Funkcja gen_wykres domyślnie korzysta z graficznego pliku tła oraz pliku czcionek: alfa2.jpg oraz calibril.ttf. Te pliki powinny być w tym samym folderze co phpWykres.php.