pChart 中的横坐标点位置 - 值,而不是标签

Abscissa point placement in pChart - values, not labels

使用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 将横坐标值解释为数字?

我查看了 pChart 代码,我几乎可以肯定这是他们呈现数据的唯一方法:X-axis 刻度均匀分布,刻度数等于系列中的数据点数.

但是您仍然可以通过将一些点定义为缺失来获得您想要的。如果您的具体示例 "fixed" 代码将如下所示(其余不变):

$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;)

scatter plot 是我要找的。这绘制了正确的 X-Y 图:

$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();