Jesteś tutaj: webmade.org >> porady >> porady
autor: Paweł 'lisek' Lis, ostatnia modyfikacja: 2008-05-10
Czasem trzeba na stronie zamieścić jakiś wykres. Jeśli wszystkie kolumny są w pliku graficznym, nie ma problemu. Zaczyna się on gdy wykres musi być wygenerowany dynamiczne. Za pomocą prostego skryptu pokażę, jak można wygenerować wykres o określonej maksymalnej szerokości (tak aby układ strony pozostał nienaruszony-podanie wartości wykresu jako jego szerokości w pikselach może mieć straszne skutki np. gdy wykres ma wartość 100000).
Na początku w zmiennej $max
ustawiamy maksymalną szerokość. Będzie to szerokość największego elementu wykresu - wszystkie inne będą proporcjonalnie mniejsze:
$max=368;
Następnie w zmiennej $wykres
podajemy wszystkie wartości wykresu. Pozostawienie pustych nawiasów kwadratowych sprawi że PHP sam przypisze im kolejne numery (0,1,2,3 itd.), dzięki temu nie trzeba się martwić o ich numerację:
$wykres[]=155; $wykres[]=2111; $wykres[]=299; $wykres[]=400;
Do zmiennej $najwieksza
przypisujemy pierwszy element zmiennej $wykres
, a następnie w pętli while (równie dobrze można użyć pętli for - red.) szukamy największego elementu:
$nr=0; $najwieksza=$wykres[0]; while ($nr<count($wykres)) { if ($wykres[$nr]>$najwieksza) $najwieksza=$wykres[$nr]; $nr++; }
W kolejnej pętli wyświetlany jest wykres za pomocą bloków div (może to być jakikolwiek znacznik):
$nr=0; while ($nr<count($wykres)) { $licz = $max * $wykres[$nr] / $najwieksza; $licz = round ($licz,0); print '<div class="wykres" style="border:2px solid red;width:' . $licz . 'px"> </div>'; $nr++; }
Po wykonaniu kodów z tego artykułu powinny ukazać się cztery prostokąty o czerwonych obramowaniach o szerokościach 27, 368, 52 i 70 pikseli.
Odpowiednio zmieniając style każdego elementu można sprawić, że słupki wyświetlane będą pionowo (jednak zastosowanie float:left; sprawi że elementy będą wyświetlane „od końca”).
Paweł 'lisek' Lis
szukaj: wykresy php generownie wykresów php
Osoby czytające tę publikację przeglądały również:
© 2004-2008 copyright by webmade.org