
Mark Lucas
0
3710
794
pChart er et bemærkelsesværdigt avanceret grafisk værktøjssæt til PHP. Det er gratis under GPL-licens, meget tilpasselig, fuldt objektorienteret og mere end i stand til at håndtere alle data, du kaster på dem. Lad mig vise dig, hvordan du kommer i gang med at bruge det til din webapp.
Denne tutorial forudsætter en grundlæggende viden om PHP.
Funktioner - Kort overblik
- Let at komme i gang med mange eksempler på kode.
- Anti-aliasing til smukke grafer.
- Enhver form for graf, du muligvis kunne forestille dig, såvel som oprindelige tegningsrutiner for at tilpasse skærmen endnu mere. (3D-grafer er dog begrænset til cirkeldiagrammer)
- Bestil pas linjeberegning - bare give det datapunkterne, og lad det gøre arbejdet.
- Kan også oprette stregkoder, som om grafering ikke var nok. (Ikke dog QR-koder, kun standard 1-dimensionelle)
- Betinget formatering, for at skabe virkelig visuelt tiltalende grafer.
- Omfattende cacheklasse for at fremskynde din graf i et produktionsmiljø.
Kom godt i gang
Download den nyeste pChart-pakke og upload den til roden af din webserver. Omdøb direkte til pChart. Du kan teste det ud med det samme ved at navigere til dette bibliotek, der indlæser eksemplerne grafer.
Prøv det selv
For at lære den grundlæggende metode til at tegne en graf skal du oprette en ny PHP-fil i roden til din server, der kaldes test.php. Føj disse linjer til toppen (forudsat at det bibliotek, du uploader pChart til navngivet bare pChart):
/ * Inkluder alle klasser * / include ("pChart / class / pDraw.class.php"); indbefatter ( "pChart / klasse / pImage.class.php"); indbefatter ( "pChart / klasse / pData.class.php");
Det næste trin er at oprette et datasæt og bruge metoden addPoints.
/ * Opret dit datasætobjekt * / $ myData = nyt pData (); / * Tilføj data i dit datasæt * / $ myData-> addPoints (array (VOID, 3,4,3,5));
Bemærk, at du kan bruge en UGYLDIG nøgleord, hvis data mangler. Du kan også oprette forbindelse til en MySQL datakilde og træk en matrix med data derfra, eller indlæse en CSV-fil et eller andet sted. Vi tegner en meget forenklet kurvegrafik, men du kan også tilføje flere datasæt, justere kryds osv. På dette tidspunkt.
Derefter skal du oprette billedobjektet, indstille grafområdet og vælge en skrifttype.
$ myPicture = ny pImage (700.230, $ myData); // bredde, højde, datasæt $ myPicture-> setGraphArea (60,40,670,190); // x, y, bredde, højde $ myPicture-> setFontProperties (array ("FontName" => "pChart / fonts / verdana.ttf", "FontSize" => 11));
Skalaen skal derefter beregnes før output - men dette kan gøres automatisk - tegne derefter grafen på denne måde:
$ MyPicture-> drawScale (); $ MyPicture-> drawSplineChart ();
I dette tilfælde tegner vi et splinskart - dybest set et buet linjediagram - men der er en enorm liste over andre diagrammer, du kan tegne bare ved at ændre denne funktion. Det aller sidste trin er at udsende den resulterende PNG-fil til browseren. Brug Slag() funktion til at gøre dette:
$ MyPicture-> Stroke ();
Du vil bruge dette i tilfælde, hvor du enten viser direkte til brugeren eller indlejrer PHP som fil som et billede, som:

En anden mulighed er at gengive grafen til en fil, hvis du f.eks. Genererer dem gennem en slags automatiseret CRON-job. I dette tilfælde skal du bruge (hvor stien til billedet er i forhold til test.php og i en skrivbar mappe):
$ MyPicture-> gengive ( "mypic.png");
Alternativer
Selvom pChart langtfra er den mest omfattende kartlægningsværktøjskasse til PHP, er der nogle alternativer:
- SparkLine PHP er en implementering af de karakteristiske små grafer, der er navngivet af Edward Tuffte.
- JqPlot er en jQuery-baseret grafisk løsning, der vil flytte grafberegningen til brugerens browser snarere end til din server, ideel hvis du prøver at kortlægge matematiske funktioner.
- PHPMyGraph er ikke så omfattende, tilpasses eller attraktiv som pChart, men det er også meget enklere.
- EasyChart Builder er et simpelt WordPress-plugin, men dette kræver, at dit datasæt tilføjes manuelt.
- Google Image Chart-skaberen har et bredt udvalg af grafer og kan let integreres, men kræver også, at du manuelt indtaster dit datasæt.