sábado, 22 de marzo de 2014

Graficos con pChart

Hacer graficos usando las libreriras del PHP y otras ya implementadas con pChart

Aqui dejo un enlace para poder descargar los archivos necesarios:
http://freakshare.com/files/veip521q/pChart2.1.3.rar.html

  •  Aqui vemos un grafico muy frecuente de grafico de barras.
 

codigo fuente tomado del ejemplo de pChart
<?php   
 
/* CAT:Bar Chart */

 /* pChart library inclusions */
 
include("../class/pData.class.php");
 include(
"../class/pDraw.class.php");
 include(
"../class/pImage.class.php");

 
/* Create and populate the pData object */
 
$MyData = new pData();  
 
$MyData->addPoints(array(13251,4118,3087,1460,1248,156,26,9,8),"Hits");
 
$MyData->setAxisName(0,"Hits");
 
$MyData->addPoints(array("Firefox","Chrome","Internet Explorer","Opera","Safari","Mozilla","SeaMonkey","Camino","Lunascape"),"Browsers");
 
$MyData->setSerieDescription("Browsers","Browsers");
 
$MyData->setAbscissa("Browsers");
 
$MyData->setAbscissaName("Browsers");

 
/* Create the pChart object */
 
$myPicture = new pImage(500,500,$MyData);
 
$myPicture->drawGradientArea(0,0,500,500,DIRECTION_VERTICAL,array("StartR"=>240,"StartG"=>240,"StartB"=>240,"EndR"=>180,"EndG"=>180,"EndB"=>180,"Alpha"=>100));
 
$myPicture->drawGradientArea(0,0,500,500,DIRECTION_HORIZONTAL,array("StartR"=>240,"StartG"=>240,"StartB"=>240,"EndR"=>180,"EndG"=>180,"EndB"=>180,"Alpha"=>20));
 
$myPicture->setFontProperties(array("FontName"=>"../fonts/pf_arma_five.ttf","FontSize"=>6));

 
/* Draw the chart scale */ 
 
$myPicture->setGraphArea(100,30,480,480);
 
$myPicture->drawScale(array("CycleBackground"=>TRUE,"DrawSubTicks"=>TRUE,"GridR"=>0,"GridG"=>0,"GridB"=>0,"GridAlpha"=>10,"Pos"=>SCALE_POS_TOPBOTTOM));

 
/* Turn on shadow computing */ 
 
$myPicture->setShadow(TRUE,array("X"=>1,"Y"=>1,"R"=>0,"G"=>0,"B"=>0,"Alpha"=>10));

 
/* Create the per bar palette */
 
$Palette = array("0"=>array("R"=>188,"G"=>224,"B"=>46,"Alpha"=>100),
                  
"1"=>array("R"=>224,"G"=>100,"B"=>46,"Alpha"=>100),
                  
"2"=>array("R"=>224,"G"=>214,"B"=>46,"Alpha"=>100),
                  
"3"=>array("R"=>46,"G"=>151,"B"=>224,"Alpha"=>100),
                  
"4"=>array("R"=>176,"G"=>46,"B"=>224,"Alpha"=>100),
                  
"5"=>array("R"=>224,"G"=>46,"B"=>117,"Alpha"=>100),
                  
"6"=>array("R"=>92,"G"=>224,"B"=>46,"Alpha"=>100),
                  
"7"=>array("R"=>224,"G"=>176,"B"=>46,"Alpha"=>100));

 
/* Draw the chart */ 
 
$myPicture->drawBarChart(array("DisplayPos"=>LABEL_POS_INSIDE,"DisplayValues"=>TRUE,"Rounded"=>TRUE,"Surrounding"=>30,"OverrideColors"=>$Palette));

 
/* Write the legend */ 
 
$myPicture->drawLegend(570,215,array("Style"=>LEGEND_NOBORDER,"Mode"=>LEGEND_HORIZONTAL));

 
/* Render the picture (choose the best way) */
 
$myPicture->autoOutput("pictures/example.drawBarChart.palette.png"); ?>

  • Aqui otro ejemplo de grafico de Torta muy usual







<?php   
 
/* CAT:Pie charts */

 /* pChart library inclusions */
 
include("../class/pData.class.php");
 include(
"../class/pDraw.class.php");
 include(
"../class/pPie.class.php");
 include(
"../class/pImage.class.php");

 
/* Create and populate the pData object */
 
$MyData = new pData();   
 
$MyData->addPoints(array(40,60,15,10,6,4),"ScoreA");  
 
$MyData->setSerieDescription("ScoreA","Application A");

 
/* Define the absissa serie */
 
$MyData->addPoints(array("<10","10<>20","20<>40","40<>60","60<>80",">80"),"Labels");
 
$MyData->setAbscissa("Labels");

 
/* Create the pChart object */
 
$myPicture = new pImage(700,230,$MyData);

 
/* Draw a solid background */
 
$Settings = array("R"=>173"G"=>152"B"=>217"Dash"=>1"DashR"=>193"DashG"=>172"DashB"=>237);
 
$myPicture->drawFilledRectangle(0,0,700,230,$Settings);

 
/* Draw a gradient overlay */
 
$Settings = array("StartR"=>209"StartG"=>150"StartB"=>231"EndR"=>111"EndG"=>3"EndB"=>138"Alpha"=>50);
 
$myPicture->drawGradientArea(0,0,700,230,DIRECTION_VERTICAL,$Settings);
 
$myPicture->drawGradientArea(0,0,700,20,DIRECTION_VERTICAL,array("StartR"=>0,"StartG"=>0,"StartB"=>0,"EndR"=>50,"EndG"=>50,"EndB"=>50,"Alpha"=>100));

 
/* Add a border to the picture */
 
$myPicture->drawRectangle(0,0,699,229,array("R"=>0,"G"=>0,"B"=>0));

 
/* Write the picture title */ 
 
$myPicture->setFontProperties(array("FontName"=>"../fonts/Silkscreen.ttf","FontSize"=>6));
 
$myPicture->drawText(10,13,"pPie - Draw 2D pie charts",array("R"=>255,"G"=>255,"B"=>255));

 
/* Set the default font properties */ 
 
$myPicture->setFontProperties(array("FontName"=>"../fonts/Forgotte.ttf","FontSize"=>10,"R"=>80,"G"=>80,"B"=>80));

 
/* Enable shadow computing */ 
 
$myPicture->setShadow(TRUE,array("X"=>2,"Y"=>2,"R"=>0,"G"=>0,"B"=>0,"Alpha"=>50));

 
/* Create the pPie object */ 
 
$PieChart = new pPie($myPicture,$MyData);

 
/* Draw a simple pie chart */ 
 
$PieChart->draw2DPie(120,125,array("SecondPass"=>FALSE));

 
/* Draw an AA pie chart */ 
 
$PieChart->draw2DPie(340,125,array("DrawLabels"=>TRUE,"LabelStacked"=>TRUE,"Border"=>TRUE));

 
/* Draw a splitted pie chart */ 
 
$PieChart->draw2DPie(560,125,array("WriteValues"=>PIE_VALUE_PERCENTAGE,"DataGapAngle"=>10,"DataGapRadius"=>6,"Border"=>TRUE,"BorderR"=>255,"BorderG"=>255,"BorderB"=>255));

 
/* Write the legend */
 
$myPicture->setFontProperties(array("FontName"=>"../fonts/pf_arma_five.ttf","FontSize"=>6));
 
$myPicture->setShadow(TRUE,array("X"=>1,"Y"=>1,"R"=>0,"G"=>0,"B"=>0,"Alpha"=>20));
 
$myPicture->drawText(120,200,"Single AA pass",array("DrawBox"=>TRUE,"BoxRounded"=>TRUE,"R"=>0,"G"=>0,"B"=>0,"Align"=>TEXT_ALIGN_TOPMIDDLE));
 
$myPicture->drawText(440,200,"Extended AA pass / Splitted",array("DrawBox"=>TRUE,"BoxRounded"=>TRUE,"R"=>0,"G"=>0,"B"=>0,"Align"=>TEXT_ALIGN_TOPMIDDLE));

 
/* Write the legend box */ 
 
$myPicture->setFontProperties(array("FontName"=>"../fonts/Silkscreen.ttf","FontSize"=>6,"R"=>255,"G"=>255,"B"=>255));
 
$PieChart->drawPieLegend(380,8,array("Style"=>LEGEND_NOBORDER,"Mode"=>LEGEND_HORIZONTAL));

 
/* Render the picture (choose the best way) */
 
$myPicture->autoOutput("pictures/example.draw2DPie.png"); ?>

No hay comentarios:

Publicar un comentario