phpWykres

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.