Как создать график с помощью jpgraph со случайным временем по оси X

У меня есть данные, состоящие из показаний счетчиков в разные случайные моменты времени.

Я хотел бы создать (линейный) график, показывающий изменение показаний счетчика, однако время не является регулярным - их может быть 3 в один день или ни одного в неделю.

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

Если я даю произвольную шкалу (например, 1 день на тик), я не уверен, как сказать «нет данных на этом тике» для того, где есть пробелы. Я также не уверен, смогу ли я представить меньшую степень детализации (например, если бы был один утром, один днем, он появился бы в одном и том же месте со шкалой 1 день на тик, я думаю)


person Ben Holness    schedule 28.11.2012    source источник


Ответы (1)


У меня такая же проблема. Если вы проверите LinePlot в ссылке на класс, вы увидите, что вы можете установить второй аргумент для значений оси x. Очевидно, массивы осей Y и X должны иметь одинаковое количество элементов. Я сделал пример кода на основе руководства. Код еще не тестировался, но вот как он должен работать:

function elevation_chart ($ydata, $xdata) {
  require_once('jpgraph/jpgraph.php');
  require_once('jpgraph/jpgraph_line.php');
  $width = 600; $height = 200;
  $graph = new Graph($width,$height);
  $graph->SetScale('intint');
  $graph->title->Set('Elevation profile');
  $graph->xaxis->title->Set('(Distance)');
  $graph->yaxis->title->Set('(Altitude)');
  $lineplot = new LinePlot($ydata, $xdata); //here you have to add $xdata as second argument
  $graph->Add($lineplot);
  $graph->Stroke();
}
person balagan    schedule 28.01.2013