Шаг по оси Y, пропуск в данных - JPGraph php

D
На сайте с 28.06.2008
Offline
997
230

Освоил генерацию графиков через JPGraph, но не могу победить два момента.

1. Как задать свой промежуток и шаг по оси Y ?

2. Если нет данных за какой-то год, линия графика прерывается, как этого избежать?

Касательно 1 пункта, я пробовал то, что нагуглил -

$graph->yaxis->SetTickPositions(array(0,10,20,30,40,50,60,70,80,90,100), array(5,15,25,35,45,55,65,75,85,95));

получаю ошибку

JpGraph Error: 25067 Your manually specified scale and ticks is not correct. The scale seems to be too small to hold any of the specified tick marks.

Вот код вывода графика

  <?php
require_once('/var/tmp/jpgraph/src/jpgraph.php');
require_once('/var/tmp/jpgraph/src/jpgraph_line.php');
DEFINE("LANGUAGE_CYRILLIC",true);
DEFINE("CYRILLIC_FROM_WINDOWS",true);
$ydata = array_values($this->exam);
$xdata = array_keys($this->exam);
$graph = new Graph(700, 300, auto);
$graph->SetScale("textlin");
$lineplot = new LinePlot($ydata);
$lineplot->mark->SetType(MARK_SQUARE);
$graph->title->Set('Название графика');
$graph->xaxis->SetTickLabels($xdata);
$graph->xaxis->SetLabelAngle(90);
$graph->Add($lineplot);
$graph->SetShadow();
$lineplot->value->Show();
$lineplot->SetColor('red');
// $graph->yaxis->SetTickPositions(array(0,10,20,30,40,50,60,70,80,90,100), array(5,15,25,35,45,55,65,75,85,95));
$img = $graph->Stroke(_IMG_HANDLER);
ob_start();
imagepng($img);
$imageData = ob_get_contents();
ob_end_clean();
?>
<img src="data:image/png;base64,<?php echo(base64_encode($imageData)); ?>" style="width: 100%" />

Вот доки на п. 1

https://jpgraph.net/download/manuals/classref/AxisPrototype.html#_AXISPROTOTYPE_SETTICKPOSITIONS

но примера нет.

png 188406.png

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий