Как исправить перекрывающиеся бары в гистограмме нескольких серий pChart? - PullRequest
0 голосов
/ 01 апреля 2019

Я использую библиотеку c-pChart для рисования диаграмм и создания некоторых файлов PDF с использованием библиотеки mPDF.Я должен нарисовать гистограмму из нескольких серий.Я сделал то же самое, что и пример, приведенный на сайте pChart.Но мои бары перекрываются друг с другом.

Я просмотрел все документы pChart, а также StackOverflow.Но я не смог найти ни одного ресурса, который имел эту проблему.Я использую c-pChart - это последняя версия pChart, которая является 2.1.4.Я использую PHP 7. Пожалуйста, обратитесь к этому git-репо для ссылки c-pChart.https://github.com/szymach/c-pchart

require_once __DIR__ . '/libPDF/vendor/autoload.php';
require_once __DIR__ . '/vendor/autoload.php';

use CpChart\Chart\Pie;
use CpChart\Data;
use CpChart\Image;


$MyData = new Data();
$MyData->addPoints(array(1,2,16,12,8,3),"Probe 1");
$MyData->addPoints(array(3,12,15,8,5,-5),"Probe 2");
$MyData->addPoints(array(2,0,5,18,19,22),"Probe 3");

$MyData->setSerieTicks("Probe 2",4);
$MyData->addPoints(array("Jan","Feb","Mar","Apr","May","Jun"),"Labels");
$MyData->setSerieDescription("Labels","Months");
$MyData->setAbscissa("Labels");

$MyData->setAxisName(0,"Temperatures");

$myPicture = new Image(1000, 500, $MyData);
$myPicture->drawRectangle(0, 0, 999, 499, ["R" => 0, "G" => 0, "B" => 0]);

$scaleSettings = [
"XMargin" => 10,
"YMargin" => 10,
"Floating" => TRUE,
"GridR" => 200,
"GridG" => 200,
"GridB" => 200,
"DrawSubTicks" => TRUE,
"CycleBackground" => TRUE,
"LabelRotation" => 20,
//"GridTicks" => 50
//"Pos" => SCALE_POS_TOPBOTTOM
//"InnerTickWidth" => 20,
//"OuterTickWidth" => 20,
"Mode"=>SCALE_MODE_FLOATING 
];

$myPicture->setGraphArea(90,60,920,420);
$myPicture->drawScale($scaleSettings);
$myPicture->setFontProperties(["FontName" => "pf_arma_five.ttf", 
  "FontSize" => 11]);
$myPicture -> drawBarChart(array("DisplayOrientation"=>ORIENTATION_AUTO,"DisplayValues"=>TRUE,"DisplayColor"=>DISPLAY_AUTO,"Rounded"=>TRUE,"Surrounding"=>60,"Interleave"=>3));

$myPicture -> drawLegend(490,40,array("Style"=>LEGEND_NOBORDER,"Mode"=>LEGEND_HORIZONTAL));
$myPicture->Render("Test.png");

Это мой код, который создает файл изображения с гистограммой.Имя файла - «Test.png».

Может кто-нибудь помочь мне нарисовать гистограмму, не перекрывая друг друга?Мне нужно нарисовать гистограмму без наложения и включить ее в PDF.Пожалуйста, обратитесь к ссылке ниже для текущего вывода из моего кода.

(https://www.dropbox.com/s/alqy4zsz70k1nqv/emobarTest.png?dl=0)

...