pawnies20
pChart user
Joined: Mon Jul 09, 2012 9:23 pm Posts: 4
|
problem with scale x axis and mysql data
Nevertheless, I have a little problem that I can not solve.
I use a mysql database as a source of graphics.
The x-axis contains the time (in hours on one day) and the y-axis temperatures
But the datas in the database are not saved to fixed interval.
So I have a graph that appears with the x-axis and at regular intervals such as 0 3 3 7 8 12 13 18 24
The scatter function seems to be the solution but I can not not do it!
If you could give me a helping hand ....
thank you
My script:
<?php
/* Include the pData class */
include("pData.class.php"); include("pDraw.class.php"); include("pImage.class.php");
/* Create the pData object */
$MyData = new pData();
/* Connect to the MySQL database */
$db = mysql_connect("localhost", "root", "toto");
mysql_select_db("domotics",$db);
/* Build the query that will returns the data to graph */
$Requete = "SELECT * FROM `EVENTS` where DEVICE ='^7' AND DATE >= DATE_SUB(current_date, INTERVAL 1 DAY) AND DATE < current_date ORDER BY DATE";
$Result = mysql_query($Requete ,$db);
while($row = mysql_fetch_array($Result))
/* Get the data from the query result */
{
$VALUE[] = $row["VALUE"]/10;
/* $DATE[] = $row["DATE"];*/
$DATE[] = date("H.i", strtotime($row["DATE"]));}
/* Save the data in the pData array */
$MyData->addPoints($DATE,"DATE");
$MyData->addPoints($VALUE,"VALUE");
$MyData->setScatterSerie("DATE","VALUE",0);
/* insere les données de la colonne date en X */ $MyData->setAbscissa("DATE");
$myPicture = new pImage(796,370,$MyData,TRUE);
$Settings = array("R"=>50,"G"=>70,"B"=>80,"Surrounding"=>0); /* remplissage du rectangle */ $myPicture->drawRoundedFilledRectangle(0,0,795,369,20,$Settings); /* lisere noir en contour */ $myPicture->drawRoundedRectangle(0,0,795,369,20, array("R"=>0,"G"=>0,"B"=>0));
$myPicture->drawFromPNG(250,-1,"c:\INETPUB/tempicon.png"); /* LEGENDE TITRE */ $myPicture->setFontProperties(array("FontName"=>"calibri.ttf","FontSize"=>22)); $TextSettings = array("DrawBox"=>false,"Align"=>TEXT_ALIGN_MIDDLEMIDDLE,"BoxRounded"=>TRUE,"R"=>0,"G"=>0,"B"=>0,"Angle"=>0,"FontSize"=>22); $myPicture->drawText(388,30,"- chambre Perrine -",$TextSettings);
$myPicture->setShadow(false); $myPicture->setGraphArea(60,60,770,310);
/* taille police valeurs abscisse et ordonnee */ $myPicture->setFontProperties(array("R"=>0,"G"=>0,"B"=>0,"FontName"=>"calibri.ttf","FontSize"=>6));
/* permet de n'afficher qu'une heure sur 3 */
$myPicture->drawScale(array("CycleBackground"=>true,"LabelSkip"=>5,"DrawSubTicks"=>true,"LabelRotation"=>45));
$myPicture->setShadow(TRUE,array("X"=>2,"Y"=>2,"R"=>0,"G"=>0,"B"=>0,"Alpha"=>30));
$myPicture->drawSplineChart();
/* Write a legend box */ $myPicture->setFontProperties(array("FontName"=>"calibri.ttf","FontSize"=>20));
/* Write some text */ $TextSettings = array("R"=>0,"G"=>0,"B"=>0,"Angle"=>0,"FontSize"=>16); $myPicture->drawText(150,355,"min :",$TextSettings); $myPicture->drawText(200,355,$MyData->getmin("VALUE"),$TextSettings); $myPicture->drawText(350,355,"max :",$TextSettings); $myPicture->drawText(400,355,$MyData->getmax("VALUE"),$TextSettings); $myPicture->drawText(550,355,"moy :",$TextSettings); $myPicture->drawText(600,355,$MyData->getSerieAverage("VALUE"),$TextSettings);
/* Write a legend box */ $myPicture->setFontProperties(array("FontName"=>"calibri.ttf","FontSize"=>14)); $myPicture->drawLegend(665,18,array("R"=>85,"G"=>101,"B"=>109,"Surrounding"=>20,"Family"=>LEGEND_FAMILY_CIRCLE)); /* Render the picture */ $myPicture->Render("c:\INETPUB/temp.png");
?>
FRED
|