pChart 2.x forum http://wiki.pchart.net/forum/ |
|
Datetime at irregular intervals http://wiki.pchart.net/forum/viewtopic.php?f=1&t=173 |
Page 1 of 2 |
Author: | lukasr [ Fri Feb 04, 2011 2:35 pm ] |
Post subject: | Datetime at irregular intervals |
First of all thanks for the very good chart Library! I had the problem that I wanted to display a datetime series on the x axis which had irregular intervals. But the current version of pChart doesn't seem to support this way of scaling. Attachment:
File comment: current test_current_02.png [ 14.99 KiB | Viewed 30509 times ] I expected it to look like this: Attachment:
File comment: expected test_expected_02.png [ 13.26 KiB | Viewed 30509 times ] I've just added the necessary functionality to auto scale to the drawScale, the drawStepChart and the drawFilledStepChart functions - more will come soon. Find the unified diff file for pChart 2.1.0 attached. It also adds the functionality to display lines in regular intervals: Attachment:
File comment: current_lines test_current_02_lines.png [ 23.95 KiB | Viewed 30509 times ] I hope you'll find it useful. |
Author: | lukasr [ Fri Feb 04, 2011 2:38 pm ] |
Post subject: | Re: Datetime at irregular intervals |
Here is the attachment... Attachment: |
Author: | jean-damien [ Fri Feb 04, 2011 2:42 pm ] |
Post subject: | Re: Datetime at irregular intervals |
I really like this, I'll dig into it to integrate what's missing. Thank you ;o) |
Author: | lukasr [ Fri Feb 04, 2011 3:00 pm ] |
Post subject: | Re: Datetime at irregular intervals |
Here is also some sample code (based on the stepchart example): Code: <?php /* CAT:Step 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(-4,VOID,VOID,12,8,3),"Probe 1"); $MyData->addPoints(array(3,12,15,8,5,-5),"Probe 2"); $MyData->addPoints(array(2,7,5,18,19,22),"Probe 3"); $MyData->setSerieTicks("Probe 2",4); $MyData->setAxisName(0,"Temperatures"); $MyData->addPoints(array(1296299019,1296302903,1296307001,1296308071,1296309901,1296318931),"Labels"); $MyData->setSerieDescription("Labels","Timestamp"); $MyData->setXAxisDisplay(AXIS_FORMAT_DATE,"H:i"); $MyData->setAbscissa("Labels"); /* Create the pChart object */ $myPicture = new pImage(700,230,$MyData); /* Draw the background */ $Settings = array("R"=>170, "G"=>183, "B"=>87, "Dash"=>1, "DashR"=>190, "DashG"=>203, "DashB"=>107); $myPicture->drawFilledRectangle(0,0,700,230,$Settings); /* Overlay with a gradient */ $Settings = array("StartR"=>219, "StartG"=>231, "StartB"=>139, "EndR"=>1, "EndG"=>138, "EndB"=>68, "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"=>80)); /* 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,"drawStepChart() - draw a step chart",array("R"=>255,"G"=>255,"B"=>255)); /* Write the chart title */ $myPicture->setFontProperties(array("FontName"=>"../fonts/Forgotte.ttf","FontSize"=>11)); $myPicture->drawText(250,55,"Average temperature",array("FontSize"=>20,"Align"=>TEXT_ALIGN_BOTTOMMIDDLE)); /* Draw the scale and the 1st chart */ $myPicture->setGraphArea(60,60,450,190); $myPicture->drawFilledRectangle(60,60,450,190,array("R"=>255,"G"=>255,"B"=>255,"Surrounding"=>-200,"Alpha"=>10)); $myPicture->drawScale(array("DrawSubTicks"=>TRUE,"LabelShowBoundaries"=>TRUE,"ScaleModeAuto"=>TRUE)); $myPicture->setShadow(TRUE,array("X"=>1,"Y"=>1,"R"=>0,"G"=>0,"B"=>0,"Alpha"=>10)); $myPicture->setFontProperties(array("FontName"=>"../fonts/pf_arma_five.ttf","FontSize"=>6)); $myPicture->drawStepChart(array("DisplayValues"=>TRUE,"DisplayColor"=>DISPLAY_AUTO,"ScaleModeAuto"=>TRUE)); $myPicture->setShadow(FALSE); /* Draw the scale and the 2nd chart */ $myPicture->setGraphArea(500,60,670,190); $myPicture->drawFilledRectangle(500,60,670,190,array("R"=>255,"G"=>255,"B"=>255,"Surrounding"=>-200,"Alpha"=>10)); $myPicture->drawScale(array("Pos"=>SCALE_POS_TOPBOTTOM,"DrawSubTicks"=>TRUE,"ScaleModeAuto"=>TRUE)); $myPicture->setShadow(TRUE,array("X"=>-1,"Y"=>1,"R"=>0,"G"=>0,"B"=>0,"Alpha"=>10)); $myPicture->drawStepChart(array("ScaleModeAuto"=>TRUE)); $myPicture->setShadow(FALSE); /* Write the chart legend */ $myPicture->drawLegend(510,205,array("Style"=>LEGEND_NOBORDER,"Mode"=>LEGEND_HORIZONTAL)); /* Render the picture (choose the best way) */ $myPicture->autoOutput("pictures/example.drawStepChart.png"); ?> Result: Attachment:
File comment: step chart auto scale example.drawStepChartAutoScale.png [ 30.38 KiB | Viewed 30501 times ] |
Author: | sidkdbl07 [ Tue Feb 08, 2011 12:24 am ] |
Post subject: | Re: Datetime at irregular intervals |
jean-damien wrote: I really like this, I'll dig into it to integrate what's missing. Thank you ;o) Jean-damien, Does this mean we can expect the datetime x-axis to work this way from now on? The improper spacing of datetime scales has been one of my biggest compliants about this library. I don't mean to complain too much. This is a fantastic project and I use your library with a lot of respect for you Jean-damien |
Author: | jean-damien [ Tue Feb 08, 2011 8:39 am ] |
Post subject: | Re: Datetime at irregular intervals |
Hi, I'm thinking on how to get it implemented yes. My guess is that non-linear X scales will be implemented directly withing the current scaling methods. This will force a rewritting of some part of the scaling and charting functions --nothing too complicated hopefully. I can't promise it for the next sub release but it will come in the following one. Kind regards, JD. |
Author: | rizaldi [ Tue Aug 02, 2011 9:51 am ] |
Post subject: | Re: Datetime at irregular intervals |
hi lukasr, what is the right way to apply the patch? i try to do this Code: patch < pDraw.class.php_2.1.0.diff but i always get error messages saying hunk failed. Thanks before update : silly of me , all of the problem because the file is dos type |
Author: | form [ Mon Oct 24, 2011 7:33 pm ] |
Post subject: | Re: Datetime at irregular intervals |
Hi, is the patch already included in newer versions? Is it possible for DrawLineChart, also? Regards form |
Author: | danielmauch [ Fri Nov 11, 2011 1:53 pm ] |
Post subject: | Re: Datetime at irregular intervals |
I would need this as well - |
Author: | pawnies20 [ Thu Jul 12, 2012 7:53 am ] |
Post subject: | Re: Datetime at irregular intervals |
Hi !!! Same problem! Is newest version integer this capabiliies? THNAX |
Page 1 of 2 | All times are UTC |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |