pChart 2.x forum http://wiki.pchart.net/forum/ |
|
Combo Graphs Request http://wiki.pchart.net/forum/viewtopic.php?f=3&t=50 |
Page 1 of 1 |
Author: | fullybaked [ Wed Jan 05, 2011 8:43 pm ] |
Post subject: | Combo Graphs Request |
Hi there, First off, great library. I've been trialling it for the last couple of days for a new project I'm working on and it is producing far better results than the clients original tools. However, one of the specifications requires a combo graph which displays both line and bar on the same axis. The bars are for the current year/month/days and lines show the previous year/month/days data so that comparisons can be made. I haven't been able to see a way to do this with pChart and wondered if you could either let me know how, or if not currently possible I'd like to request this as a feature. Thanks |
Author: | jean-damien [ Wed Jan 05, 2011 9:55 pm ] | ||
Post subject: | Re: Combo Graphs Request | ||
Hi, If I've correctly understood your question, the answer is in the setSerieDrawable() function of the pData class. I've made an example below. Kind regards, JD. Code: <?php /* pChart library inclusions */ include("../class/pData.class"); include("../class/pDraw.class"); include("../class/pImage.class"); /* Create the pData object with some random values*/ $MyData = new pData(); $MyData->addPoints(array(30,24,32),"This year"); $MyData->addPoints(array(28,20,27),"Last year"); $MyData->addPoints(array("Year","Month","Day"),"Labels"); $MyData->setAbscissa("Labels"); /* Create the pChart object */ $myPicture = new pImage(700,230,$MyData); /* Create a solid background */ $Settings = array("R"=>179, "G"=>217, "B"=>91, "Dash"=>1, "DashR"=>199, "DashG"=>237, "DashB"=>111); $myPicture->drawFilledRectangle(0,0,700,230,$Settings); /* Do a gradient overlay */ $Settings = array("StartR"=>194, "StartG"=>231, "StartB"=>44, "EndR"=>43, "EndG"=>107, "EndB"=>58, "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,"Chart title",array("R"=>255,"G"=>255,"B"=>255)); /* Draw the scale */ $myPicture->setFontProperties(array("FontName"=>"../fonts/Forgotte.ttf","FontSize"=>11)); $myPicture->setGraphArea(50,60,670,190); $myPicture->drawFilledRectangle(50,60,670,190,array("R"=>255,"G"=>255,"B"=>255,"Surrounding"=>-200,"Alpha"=>10)); $myPicture->drawScale(array("CycleBackground"=>TRUE)); /* Graph title */ $myPicture->setShadow(TRUE,array("X"=>1,"Y"=>1,"R"=>0,"G"=>0,"B"=>0,"Alpha"=>10)); $myPicture->drawText(50,52,"Chart subtitle",array("FontSize"=>20,"Align"=>TEXT_ALIGN_BOTTOMLEFT)); /* Draw the bar chart chart */ $myPicture->setFontProperties(array("FontName"=>"../fonts/pf_arma_five.ttf","FontSize"=>6)); $MyData->setSerieDrawable("Last year",FALSE); $myPicture->drawBarChart(); /* Draw the line and plot chart */ $MyData->setSerieDrawable("Last year",TRUE); $MyData->setSerieDrawable("This year",FALSE); $myPicture->drawSplineChart(); $myPicture->drawPlotChart(); /* Make sure all series are drawable before writing the scale */ $MyData->setSerieDrawable("This year",TRUE); /* Write the legend */ $myPicture->drawLegend(540,35,array("Style"=>LEGEND_ROUND,"Alpha"=>20,"Mode"=>LEGEND_HORIZONTAL)); /* Render the picture (choose the best way) */ $myPicture->autoOutput("pictures/example.a.png"); ?>
|
Author: | kadanis [ Thu Jan 06, 2011 10:23 am ] |
Post subject: | Re: Combo Graphs Request |
Wow, thanks for the quick response. You've understood perfectly. Thank you so much for providing the example, its exactly what I needed. |
Page 1 of 1 | All times are UTC |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |