MOJA PASJA - PROGRAMOWANIE
   Dzisiaj jest Niedziela, 23 kwietnia, 2017r. Ostatnia aktualzacja miała miejsce: 10 grudnia 2006r. Homepage

Programowanie: Artykuły * FAQ * Download * Komponenty * Książki WWW: Artykuły * Narzędzia * Kursy * Darmowe * FAQ * Skrypty * Ksiązki Off-Topic: Aforyzmy * Humor Inne: Forum * Wiki * Liczniki * Linki * Chat * Grafika * Video * Inne



Jak dynamicznie wygenerować wykres na stronie ?

   Generealnie możliwości są dwie. Albo generujemy je po stronie serwera, ale na komputerze klienta. Generowanie po stronie serwera jest z pewnością bardziej eleganckie i nie wymaga wysyłania zbędnych danych do klienta, nie każdy posiada jednak na serwerze obsługę PHP, CGI czy ASP. W obydwu przypadkach mamy dwie możliwości. Pierwsza to tworzenie tych wykresów z elementów HTML, a druga to wygenerowanie jednego obrazka w którym wszystko będzie zawarte.

   Jeżeli chodzi o generwowanie obrazków, najlepiej korzystać z gotowych skryptów. W przypadku PHP, będzie nam potrzebna biblioteka GD zainstalowana na serwerze. Do wykresów słupkowych i liniowych osobiście korzystam z Panachart. Oto przykładowe wykresy przez niego wygenerowane:



Wystraczy includować klasę, a następnie stworzyć obiekt wykresu. Dane podajemy w postaci tablic, mamy możliwość ustalenia wyokości, szerokości, napisów czy kolorów. Plik z klasą panachart'a można pobrać na stronie: http://www.panacode.com/panachart/

   Panachart ma jesdnak pewną "wadę". Mianowicie nie rysuje wykresów kołowych. Po dłuższym poszukiwaniu natknąłem się na kilka skryptów takich jak np. http://www.geek247.net/PieChart/, wyglądający tak:



   Wszystkie darmowe skrypty na które się natknąłem generowały jednak dwuwymiarowe wykresy kołowe. W końcu znalazłem coś takiego jak class.userquota.php. Klasa teoretycznie do wyświetlania wykorzystania quoty przez użytkownika, jednak generuje wykresy trójwymiarowe:



Bardzo mi się to spodobało, wprowadziłem więć kilka zmian w skrypcie dzięki czemu można zmieniać opisy wartości oraz podać plik do którego obrazek ma być wygenerowany. Zmieniłem też typ pliku wyjściowego z JPG na PNG. Zmienioną wersję można pobrać tutaj. Przykład:



   Jest jeszcze jeden bardzo dobry i rozubudowany skrypt PHP o którym nie wspomniałem. Nie wspomniałem, ponieważ wymieniałem tu tylko darmowe skrypty. Ten natomiast można wykorzystać za darmo tylko w przypadku zastosowań niekomercyjnych (a strona z bannerem już takim nie jest). Więcej info: http://www.aditus.nu/jpgraph/index.php.

   Jeżeli chodzi o generowanie wykresów po stronie serwera, ale z elementów HTML, też są gotowe skryppty, choć myślę, że lepiej pokusić się o napisanie własnego. Nie jest to trudne. Do wyświetlania wykresu używamy właściwości width obrazka. Ustawiamy ją, mnożąc wartość którą reprezentuje, przez pewną zmienną, nazwijmy ją $mnoznik. $mnoznik to szerokość wykresu podzielona przez największą z wartości którą chcemy wyświetlić. Ot i cała filozofia. Przykładowy kod:

<?

$dane
[] = array('Download',435);
$dane[] = array('Forum',234);
$dane[] = array('FAQ',369);
$dane[] = array('Licznik',517);
$dane[] = array('Artykuły',135);

// Pobieramy największy element
$max = 0;
foreach (
$dane as $dana)
    if (
$dana[1]>$max) $max = $dana[1];

// Obliczamy mnożnik
$mnoznik = 150/$max; // 150 to nasza maksymalna długość słupka

// No i do roboty
echo '<table border="0" cellspacing="0" cellpadding="4">';
foreach (
$dane as $dana)
{
    echo
'<tr><td>'.$dana[0].'</td><td><img src="img/faq/bar1.gif" height="17" width="'.round($dana[1]*$mnoznik).'"><img src="img/faq/barend.gif"></td><td>'.$dana[1].'</td></tr>';
}
echo
'</table>';

?>


   I wynik jego działania:

Download435
Forum234
FAQ369
Licznik517
Artykuły135


Analogicznie można tworzyć wykresy pionowe oraz wykresy w javascripcie. Pozostaje jeszcze Java. Nie bez powodu za przykład wykresu kołowego wybrałem ilość użytkowników z zainstalowaną maszyną Java. Chodziło mi o to, aby przypomnieć Ci, że nie wszyscy mają ją zainstalowaną i należy im zapewnić jakiś inny sposób wyświetlenia danych, bądź informację skąd Javę pobrać i jak ją zainstalować. Na chat.programuj.com mam np. coś takiego:

<script type="text/javascript">
<!--
if (!navigator.javaEnabled())
{
   document.write('<br><br><center><font color="red"><b>Uwaga ! Najprawdopodobniej nie masz zainstalowanej maszyny Java.</b> </font><br> Bez niiej, nie jest możliwe uruchomienie chata. Jave możesz pobrać ze strony <a href="http://www.java.com/en/download/manual.jsp" target="_blank">http://www.java.com/en/download/manual.jsp</a></center><br><br>');
}
--> </script>


Osobiście nigdy nie wykorzystywałem Javy do generowania wykresów, nie będę się więc na ten temat rozpisywał. Dosyć przyzwoity skrypt realizujący to zadanie znjadziesz pod adresem http://www.javaside.com/u_tchart.html



Stronę przygotował: Kacper Cieśla (comboy). Wszelkie prawa zastrzeżone.
Reklama * Zgłoś błąd * Kontakt * Hosting * O stronie * Sponsoring
Czas generowania strony: 0.001s