две диаграммы в одном изображении с использованием pchart - PullRequest
0 голосов
/ 22 октября 2011

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

Я предполагаю, что мой код плохой или мой подход плохКак вы генерируете две диаграммы в одно изображение с диаграммами.Эта проблема возникает только тогда, когда мне нужны две вертикальные оси и несколько диаграмм на одном изображении.

enter image description here

и мой код:

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

 $MyData = new pData();  
 $MyData->addPoints(array(-4,VOID,VOID,12,8,3),"probe1");
 $MyData->addPoints(array(3,12,15,8,5,-5),"probe2");
 $MyData->addPoints(array(2,7,5,18,19,22),"probe3");
 $MyData->addPoints(array(14,12,10,8,9,12),"probe4");
 $MyData->addPoints(array(3,4,5,7,6,4),"probe5");


 $MyData->setAxisName(0,"Temperatures");
 $MyData->addPoints(array("Jan","Feb","Mar","Apr","May","Jun"),"Labels");
 $MyData->setSerieDescription("Labels","Months");
 $MyData->setAbscissa("Labels");

 $MyData->setSerieOnAxis("probe4", 1);
 $MyData->setAxisPosition(1,AXIS_POSITION_RIGHT);

 $MyData->setSerieDrawable (array("probe4", "probe5"), FALSE);


 $myPicture = new pImage(700,400,$MyData);
 $myPicture->drawRectangle(0,0,699,399,array("R"=>0,"G"=>0,"B"=>0));


 $myPicture->setFontProperties(array("FontName"=>"../pchart/fonts/Forgotte.ttf","FontSize"=>11));
 $myPicture->drawText(250,55,"Average temperature",array("FontSize"=>20,"Align"=>TEXT_ALIGN_BOTTOMMIDDLE));

 $myPicture->setGraphArea(60,60,670,190);
 $myPicture->drawFilledRectangle(60,60,670,190,array("R"=>255,"G"=>255,"B"=>255,"Surrounding"=>-200,"Alpha"=>10));
 $myPicture->drawScale(array("DrawSubTicks"=>TRUE));
 $myPicture->drawLineChart(array("DisplayValues"=>TRUE,"DisplayColor"=>DISPLAY_AUTO));

 $MyData->setSerieDrawable (array("probe1", "probe2", "probe3"), FALSE);
 $MyData->setSerieDrawable (array("probe4", "probe5"), TRUE);


 $myPicture->setGraphArea(60,240,670,370);
 $myPicture->drawFilledRectangle(60,240,670,370,array("R"=>255,"G"=>255,"B"=>255,"Surrounding"=>-200,"Alpha"=>10));
 $myPicture->drawScale(array("DrawSubTicks"=>TRUE));
 $myPicture->drawLineChart(array("DisplayValues"=>TRUE,"DisplayColor"=>DISPLAY_AUTO));


 $myPicture->stroke();
?>

1 Ответ

0 голосов
/ 22 октября 2011

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

$MyData->addPoints($AAA,"AAA");
$MyData->addPoints($abscisse,"Labels");

$myPicture = new pImage(X,Y,$MyData);
.....
$MyData->setSerieDrawable("AAA",TRUE);
$myPicture->drawBarChart();

$MyData2->addPoints($BBB,"BBB")
$PieChart = new pPie($myPicture,$MyData2);
$PieChart->draw3DPie(X,Y,....);

....

$myPicture->stroke();
...