Autor podstrony: Krzysztof Zajączkowski

Stronę tą wyświetlono już: 7024 razy

Utworzony w php skrypt klasy tworzącej wykresy słupkowe, przykładowy wygląd wykresu można obejrzeć na rysunku 1.

Wykres wygenerowany przez skrypt php
Rys. 1
Przykładowy wykres słupkowy.

Skrypt udostępniam na licencji GPL, czyli z uwzględnieniem moich praw autorskich, nie wolno więc z niego usuwać informacji o autorze skryptu. Przykładowy kod tworzący diagram z powyższej ilustracji znajduje się poniżej.

include 'cDiagram.php'; $diagram = new cDiagram("Wyk. 1 Przykładowy wykres", "Miesiac", "Sprzedano", 800, 600); $diagram->AddValue(100, 255,0,0,"1970"); $diagram->AddValue(170, 0,255,0,"1971"); $diagram->AddValue(120, 0,0,255,"1972"); $diagram->AddValue(220, 255,255,0,"1973"); $diagram->AddValue(400, 255,100,0,'1974'); $diagram->AddValue(250, 0,100,0,'1975'); $diagram->AddValue(1250, 0,200,150,'1976'); $diagram->AddValue(1000, 0,100,150,'1977'); $diagram->AddValue(300, 0,150,255,'1978'); $diagram->AddValue(950, 255,150,0,'1979'); $diagram->AddValue(333, 200,150,0,'1980'); $diagram->AddValue(435, 200, 100,0,'1981'); $diagram->AddValue(925, 150, 100,0,'1982'); //$diagram->AddData(array(10,"styczeń",120,"luty",70,"marzec",40, "kwiecień", 20, "maj", 30, "czerwiec", 19, "lipiec", 27, "sierpień",5, "wrzesień",8, "pazdziernik",4, "listopad",150, "grudzień")); $diagram->SetDrawXScale(0); $diagram->SetRightMargin(150); $diagram->SetDrawLegend(1, 670, 60); $diagram->ReadData("diagram_data.txt"); //$diagram->SetDxDy(10,10); //$diagram->SetDrawYScale(0); //$diagram->SetDrawXScale(0); //$diagram->SetDrawValue(0); $diagram->Refresh(); $diagram->DrawImg();

Plik cDiagram.php należy pobrać z załącznika.

Opis konstruktora:

$diagram = new cDiagram(tytuł wykresu, podpis osi x i zarazem tytuł legendy, podpis osi y, szerokość wykresu, wysokość wykresu);

Metoda dodająca wartość:

$diagram->AddValue( wartość, składowa czerwona koloru, składowa zielona koloru, składowa niebieska koloru, podpis);

Metoda wczytująca dane z tablicy

$diagram->AddData(array(wartość 1,podpis słupka 1, wartość 2, podpis słupka 2,... wartość n, podpis słupka n));

Metoda wczytująca dane z pliku

$diagram->ReadData("ścieżka do pliku");

Metoda ustawiająca wielkość prawego marginesu wykresu:

$diagram->SetRightMargin(szerokość marginesu w pikselach);

Metoda ustawiająca rysowanie i pozycję rysowania legendy na wykresie:

$diagram->SetDrawLegend(0 gdy legenda ma nie być rysowana lub 1 gdy ma być rysowana, położenie na osi x, położenie na osi y);

Metoda przerysowująca wykres po wczytaniu danych:

$diagram->Refresh();

Metoda rysująca wykres:

$diagram->DrawImg();

Istnieją jeszcze inne metody, ale przyjemność ich odkrywania pozostawiam Wam. P.S. w podanym przykładzie wczytuję dane z pliku, którym Wy nie dysponujecie, jednakże wystarczy wykomentować linijkę z $diagram->ReadData("diagram_data.txt"); aby wykres się wyświetlił dla wartości wczytanych przez metodę AddValue.

Format zapisu danych do wczytania z pliku jest następujący:

213;styczen;342;luty;22;marzec;45;kwiecień;43;maj;34;czerwiec;5;lipiec;10;sierpień;100;wrzesień;300;pazdziernik;34;listopad;32;grudzień

Jak widać powyżej, średnik stanowi separator poszczególnych rekordów.

Załączniki:

Skrypt PHP odpowiadający za rysowanie diagramu słupkowego
Layout wykonany przez autora strony, wszelkie prawa zastrzeżone. Jakiekolwiek użycie części lub całości grafik znajdujących się na tej stronie bez pisemnej zgody jej autora surowo zabronione.