View unanswered posts | View active topics It is currently Fri Mar 29, 2024 9:06 am



Reply to topic  [ 3 posts ] 
Combo Graphs Request 
Author Message
Post 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
Site Admin
Site Admin
User avatar

Joined: Thu Dec 02, 2010 2:31 pm
Posts: 409
Location: France
Post 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
example_a.png [ 17.22 KiB | Viewed 6517 times ]
Wed Jan 05, 2011 9:55 pm
Profile WWW
Post 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
Display posts from previous:  Sort by  
Reply to topic   [ 3 posts ] 

Who is online

Users browsing this forum: No registered users and 5 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

Search for:
Jump to:  
cron