Skrypt klasy tworzącej wykres słupkowy

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

Listing 1
  1. include 'cDiagram.php';
  2. $diagram = new cDiagram("Wyk. 1 Przykładowy wykres", "Miesiac", "Sprzedano", 800, 600);
  3. $diagram->AddValue(100, 255,0,0,"1970");
  4. $diagram->AddValue(170, 0,255,0,"1971");
  5. $diagram->AddValue(120, 0,0,255,"1972");
  6. $diagram->AddValue(220, 255,255,0,"1973");
  7. $diagram->AddValue(400, 255,100,0,'1974');
  8. $diagram->AddValue(250, 0,100,0,'1975');
  9. $diagram->AddValue(1250, 0,200,150,'1976');
  10. $diagram->AddValue(1000, 0,100,150,'1977');
  11. $diagram->AddValue(300, 0,150,255,'1978');
  12. $diagram->AddValue(950, 255,150,0,'1979');
  13. $diagram->AddValue(333, 200,150,0,'1980');
  14. $diagram->AddValue(435, 200, 100,0,'1981');
  15. $diagram->AddValue(925, 150, 100,0,'1982');
  16. //$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ń"));
  17. $diagram->SetDrawXScale(0);
  18. $diagram->SetRightMargin(150);
  19. $diagram->SetDrawLegend(1, 670, 60);
  20. $diagram->ReadData("diagram_data.txt");
  21. //$diagram->SetDxDy(10,10);
  22. //$diagram->SetDrawYScale(0);
  23. //$diagram->SetDrawXScale(0);
  24. //$diagram->SetDrawValue(0);
  25. $diagram->Refresh();
  26. $diagram->DrawImg();

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

Opis konstruktora:

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

Metoda dodająca wartość:

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

Metoda wczytująca dane z tablicy

Listing 4
  1. $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

Listing 5
  1. $diagram->ReadData("ścieżka do pliku");

Metoda ustawiająca wielkość prawego marginesu wykresu:

Listing 6
  1. $diagram->SetRightMargin(szerokość marginesu w pikselach);

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

Listing 7
  1. $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:

Listing 8
  1. $diagram->Refresh();

Metoda rysująca wykres:

Listing 9
  1. $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

Komentarze