Teechart PHP CalcXPosreturning 0 - PullRequest
       8

Teechart PHP CalcXPosreturning 0

0 голосов
/ 02 октября 2018

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

Конкретная проблема заключается в том, что когда я использую $ chart1-> CalcXPos (someIndex);он всегда возвращает 0 вместо значения пикселей.Как я могу решить эту проблему?

    $chart1 = new TChart(640,480);

    $varname = new Line($chart1->getChart()); 

    $someYValues = array(2,3,5,7,11,13);
    $theXValues = array(-3,-1,1,3,4,5);

    $i=0;
    foreach($someYValues as $x){
        $varname->addXY($theXValues[$i],$someYValues[$i]);
        $i++;
    }        

    $varname->Setcolor(Color::BLUE()); 
    $chart1->getAxes()->getBottom()->getTitle()->setText("X-axis label (units)"); 
    $chart1->getAxes()->getLeft()->getTitle()->setText("Y-axis label (units)"); 

    $tool=new Annotation($chart1->getChart());
    $tool->getShape()->setCustomPosition(true);

    //$chart1->paint;

    $xvalue = $chart1->getAxes()->getBottom()->CalcXPosValue($theXValues[2]);
    $yvalue = $chart1->getAxes()->getLeft()->CalcYPosValue($someYValues[2]);

    //$xvalue = $varname->CalcXPosValue($theXValues[2]);
    //$yvalue = $varname->CalcYPosValue($someYValues[2]);

    echo $xvalue;
    echo $yvalue;

    $tool->setTop($xvalue);
    $tool->setLeft($yvalue);

    $tool->setText("Random Text ");

    $chart1->render("ecg.png");

1 Ответ

0 голосов
/ 02 октября 2018

Попробуйте принудительно перерисовать диаграмму перед использованием Calc* функций:

$chart1->doInvalidate();
...