Размещение точек абсциссы в pChart - значения, а не метки - PullRequest
0 голосов
/ 13 июня 2019

Использование pChart для построения графиков:

$Data = new pData();
$Data->AddPoints(array(1,2,10), 'x');
$Data->AddPoints(array(6,8,3), 'y');
$Data->setAbscissa('x');

$Chart = new pImage($w, $h, $Data);
$Chart->setGraphArea(100, 0, $w-1, $h-50);  
$Chart->drawScale(array('Mode' => SCALE_MODE_FLOATING));
$Chart->drawPlotChart();    
$Chart->Stroke();

На графике расстояние по оси X от 1 до 2 совпадает с расстоянием от 2 до 10. Как настроить интерпретацию pChartзначения абсциссы как числа они есть?

Ответы [ 2 ]

1 голос
/ 13 июня 2019

Я посмотрел код pChart, и я почти уверен, что это единственный способ визуализации данных: тики по оси X распределены равномерно, число тиков равно количеству точек данных в серии.

Но вы все равно можете получить то, что хотите, определив некоторые очки как пропущенные.В вашем конкретном примере «исправленный» код будет выглядеть так (остальное не изменяется):

$Data->AddPoints(array(1,2,VOID,VOID,VOID,VOID,VOID,VOID,VOID,10), 'x');
$Data->AddPoints(array(6,8,VOID,VOID,VOID,VOID,VOID,VOID,VOID,3), 'y');

VOID - это константа, определенная где-то в пределах pData.class.php, так что вы уже имеете ее доступной.

А вот как выглядит конечный результат: https://imgur.com/a/Ae0nj0G ($w = 500; $h = 400;)

0 голосов
/ 19 июня 2019

A точечная диаграмма - это то, что я ищу.Это рисует правильный график XY:

$Data = new pData();
$Data->AddPoints(array(1,2,10), 'x');
$Data->AddPoints(array(6,8,3), 'y');
$Data->setAxisXY(0,AXIS_X);
$Data->setAxisPosition(0, AXIS_POSITION_BOTTOM);
$Data->setAxisXY(1,AXIS_Y);
$Data->setSerieOnAxis('y', 1);
$Data->SetScatterSerie('x', 'y');

$Chart = new pImage($w, $h, $Data);
$Chart->setGraphArea(100,0,$w-1,$h-50);  

$Scatter = new pScatter($Chart, $Data);
$Scatter->drawScatterScale();
$Scatter->drawScatterPlotChart(array());
$Chart->Stroke();
...