【问题标题】:Abscissa point placement in pChart - values, not labelspChart 中的横坐标点放置 - 值,而不是标签
【发布时间】:2019-06-13 19:33:47
【问题描述】:

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

【问题讨论】:

标签: php pchart


【解决方案1】:

我查看了 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;)

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多