2017-02-09 7 views
1

быть нежным ..Pchart печатает двойные значения на оси Х

Используя приведенный ниже код для печати диаграммы с использованием pchart на RPI через результаты в значениях двойной напечатанных на X-оси.

Мой предпочтительный результат будет иметь одинарные значения оси x, слегка повернутые, но все, что я изменяю в коде ниже, не дает хорошего результата.

Помощь будет оценена!

Maurice

<?php 

ini_set('display_errors', 'On'); 
error_reporting(E_ALL | E_STRICT); 

include("class/pDraw.class.php"); 
include("class/pImage.class.php"); 
include("class/pData.class.php"); 

$db = new PDO("sqlite:/home/pi/sensor.db"); 

$MyData = new pData(); 

$tijd=""; 
$lucht=""; 

$result = $db->query('SELECT tijd, lucht FROM waarden WHERE lucht > 40'); 
foreach($result as $row) 
{ 
    $tijd[] = $row["tijd"]; 
    $lucht[] = $row["lucht"]; 
} 

$MyData->addPoints($lucht,"lucht"); 
$MyData->setSerieOnAxis("lucht", 0); 
$MyData->setAxisName(0,"lucht"); 
$MyData->setAxisUnit(0,"%"); 

$MyData->addPoints($tijd,"tijd"); 
$MyData->setSerieDescription("tijd","Tijden"); 
$MyData->setAbscissa("tijd"); 

$myPicture = new pImage(800,330,$MyData); 
$myPicture->setFontProperties(array("FontName"=>"fonts/Forgotte.ttf","FontSize"=>11)); 
$myPicture->setGraphArea(60,40,740,290); 
$myPicture->drawScale(array("AutoAxisLabels"=>FALSE,"RemoveXAxis"=>FALSE)); 
$myPicture->drawLineChart(); 

//rotate the xaxis values 
$myPicture->drawScale(array("DrawSubTicks"=>False, "LabelRotation"=>20)); 

$myPicture->autoOutput("mypic.png"); 
$db = null; 
?> 

enter image description here

ответ

0

Найдена собственная ошибка.

кажется, что моя двойной инструкция

$myPicture->drawScale(array(" 

в инициализации на и не обрабатываются слишком хорошо, и результаты в двойной наклейке XAxis

Правильный код:

<?php 

ini_set('display_errors', 'On'); 
error_reporting(E_ALL | E_STRICT); 

include("class/pDraw.class.php"); 
include("class/pImage.class.php"); 
include("class/pData.class.php"); 

$db = new PDO("sqlite:/home/pi/sensor.db"); 

$MyData = new pData(); 

$tijd=""; 
$lucht=""; 

$result = $db->query('SELECT tijd, lucht FROM waarden WHERE lucht > 40'); 
foreach($result as $row) 
{ 
    $tijd[] = $row["tijd"]; 
    $lucht[] = $row["lucht"]; 
} 

$MyData->addPoints($lucht,"lucht"); 
$MyData->setSerieOnAxis("lucht", 0); 
$MyData->setAxisName(0,"lucht"); 
$MyData->setAxisUnit(0,"%"); 

$MyData->addPoints($tijd,"tijd"); 
$MyData->setAbscissa("tijd"); 
$MyData->setAbscissaName("Time of Reading"); 

$myPicture = new pImage(800,330,$MyData); 
$myPicture->setFontProperties(array("FontName"=>"fonts/Forgotte.ttf","FontSize"=>11)); 
$myPicture->setGraphArea(60,40,740,290); 

//Remove line below to avoid double Xaxis values 
//$myPicture->drawScale(array("AutoAxisLabels"=>FALSE,"RemoveXAxis"=>FALSE)); 
$myPicture->drawScale(array("DrawSubTicks"=>False, "LabelRotation"=>20)); 
$myPicture->drawLineChart(); 
$myPicture->autoOutput("mypic.png"); 
$db = null; 
?>