Skrypt klasy tworzącej wykres słupkowy

Autor podstrony: Krzysztof Zajączkowski

Stronę tą wyświetlono już: 6394 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.

Propozycje książek

Załączniki:

Skrypt PHP odpowiadający za rysowanie diagramu słupkowego