Vediamo adesso in questo articolo come creare dei grafici con il PHP e le librerie pChart. Innanzitutto sono due progetti completamente opensource e quindi non costano nulla. Entriamo più nel dettaglio e spieghiamo di cosa si tratta nella realtà.
Che cosa è pChart
Si tratta fondamentalmente di un framework orientato alla programmazione a oggetti ed è realizzato nel linguaggio PHP. Si utilizza tramite l’installazione di una libreria GD che deve risiedere nel proprio web server. Il punto di forza di pChart risiede nella velocità di rendering ottimizzata tramite un algoritmo atto a favorirne le prestazioni.
Il suo utilizzo è estremamente semplice per potere eseguire un grafico basterà inserire il seguente codice
$DataSet->AddPoint(array("Jan","Feb","Mar","Apr","May"),"Serie2"); $DataSet->AddAllSeries(); $DataSet->SetAbsciseLabelSerie("Serie2"); // instanziare le librerie $Test = new pChart(340,250); $Test->setFontProperties("Fonts/tahoma.ttf",10); $Test->drawFilledRoundedRectangle(7,7,333,243,5,240,240,240); $Test->drawRoundedRectangle(5,5,335,245,5,230,230,230); // Tipo di Grafico in questo caso a torta $Test->AntialiasQuality = 0; $Test->setShadowProperties(2,2,200,200,200); $Test->drawFlatPieGraphWithShadow($DataSet->GetData(),$DataSet->GetDataDescription(),130,130,80,PIE_PERCENTAGE,8); $Test->clearShadow(); // Titolo da attribuire al Grafico $Test->drawTitle(100,20,"Test Pie Graph",0,0,0); // Legenda Grafico $Test->drawPieLegend(270,15,$DataSet->GetData(),$DataSet->GetDataDescription(),250,250,250); // Salvare il file creato $Test->Render("piechart.png"); //$Test->Stroke(); ?>
Questo ovviamente per il grafico a Torta che è mostrato qui sotto
Invece se vogliamo creare un grafico a Linee dovremo fare quanto segue
$DataSet->AddPoint(array(10,11,11,12,12,13,14,15,17,19,22,24,23,23,22,20,18,16,14),"Serie2"); $DataSet->AddPoint(array(4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22),"Serie3"); $DataSet->AddAllSeries(); $DataSet->RemoveSerie("Serie3"); $DataSet->SetAbsciseLabelSerie("Serie3"); $DataSet->SetSerieName("January","Serie1"); $DataSet->SetSerieName("February","Serie2"); $DataSet->SetYAxisName("Temperature"); $DataSet->SetYAxisUnit("°C"); $DataSet->SetXAxisUnit("h"); $Test = new pChart(700,230); $Test->setFontProperties("Fonts/tahoma.ttf",8); $Test->setGraphArea(60,30,680,180); $Test->drawFilledRoundedRectangle(7,7,693,223,5,240,240,240); $Test->drawRoundedRectangle(5,5,695,225,5,230,230,230); $Test->drawGraphArea(255,255,255,TRUE); $Test->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_NORMAL,150,150,150,TRUE,90,2); $Test->drawGrid(4,TRUE,230,230,230,50); // Disegna la linea dello 0 $Test->setFontProperties("Fonts/tahoma.ttf",6); $Test->drawTreshold(0,143,55,72,TRUE,TRUE); // Disegna la linea del grafico $Test->drawLineGraph($DataSet->GetData(),$DataSet->GetDataDescription()); $Test->drawPlotGraph($DataSet->GetData(),$DataSet->GetDataDescription(),3,2,255,255,255); // Inserisce la legenda $Test->setFontProperties("Fonts/tahoma.ttf",8); $Test->drawLegend(70,40,$DataSet->GetDataDescription(),255,255,255); // Inserisce il titolo $Test->setFontProperties("Fonts/tahoma.ttf",10); $Test->drawTitle(60,22,"Temperature",50,50,50,585); // salva il file con l'immagine $Test->Render("linegraph.png"); //$Test->Stroke(); ?>
e questo è il relativo grafico