|
|
Page 1 of 1
|
[ 3 posts ] |
|
Author |
Message |
fullybaked
|
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
|
Wed Jan 05, 2011 8:43 pm |
|
|
jean-damien
Site Admin
Joined: Thu Dec 02, 2010 2:31 pm Posts: 409 Location: France
|
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"); ?>
Attachments:
example_a.png [ 17.22 KiB | Viewed 7104 times ]
|
Wed Jan 05, 2011 9:55 pm |
|
|
kadanis
|
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.
|
Thu Jan 06, 2011 10:23 am |
|
|
|
Page 1 of 1
|
[ 3 posts ] |
|
Who is online |
Users browsing this forum: No registered users and 0 guests |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot post attachments in this forum
|
|
|