jpgraph problema afisare text pentru fiecare punct

PEAR, Smarty, ADOdb, OOP, PHP 5, XML, UML, Şabloane de proiectare, PHP-GTK.

Moderatori: coditza, Emil, Moderatori

Avatar utilizator
boo
Senior Member
Mesaje: 267
Membru din: Mie Mar 24, 2004 8:16 pm
Localitate: Ploiesti
Contact:

jpgraph problema afisare text pentru fiecare punct

Mesajde boo » Mar Mar 22, 2011 12:58 pm

Salut,

Folosesc jpgraph pentru a construi un grafic si intampin o problema. Graficul este afisat (de tip scatter plot) dar doresc sa afisez deasupra fiecarui punct din grafic si coordonatele pe care se afla acesta. Stiu ca se construieste o functie "call back" pentru acest lucru.
Pana acum am reusit sa afisez doar coordonatele x insa mie imi trebuie ceva e genul x|y
Aici este codul:

Cod: Selectaţi tot

$datax = array(3.5,3.7,3,4,6.2,6,3.5,8,14,8,11.1,13.7);
$datay = array(20,22,12,13,17,20,16,19,30,31,40,43);
function barValueFormat($aXVal){

      return $aXVal;
}
 
$graph = new Graph(550,550);
$graph->SetScale("intint",0,3,0,3);
 
$graph->img->SetMargin(40,40,40,40);       
//$graph->SetShadow();

$graph->SetBackgroundImage(MATRIX,BGIMG_FILLPLOT);
//$graph->title->Set("MATRIX");
$graph->title->SetFont(FF_FONT1,FS_BOLD);
 
$sp1 = new ScatterPlot($datax,$datay);
$sp1->mark->SetSize(10);
$sp1->mark->SetFillColor('#ccccff');
$sp1->mark->SetType(MARK_FILLEDCIRCLE);

$sp1->value->SetMargin(20);

$sp1->value->SetFormatCallback('barValueFormat');
$sp1->value->Show();

/*
$sp1->mark->SetType(MARK_X); 
$sp1->mark->show();
*/
$graph->Add($sp1);

$graph->Stroke();

prin functia barValueFormat() afisez coordonatele x pentru fiecare punct in parte. Nu stiu insa cum as putea sa afisez si coordonatele y iar documentatia lor nu este foarte bogata in ceea ce priveste acest lucru.
Ca sa va faceti o idee asupra graficului puteti sa il vedeti aici: http://entropylinks.com/testgraph.php?c ... 3&count=7&
Va rog daca a mai lucrat cineva cu aceasta librarie si ma poate ajuta i-as fi recunoscator



Avatar utilizator
teachme
Senior Member
Mesaje: 550
Membru din: Mar Aug 17, 2010 11:52 am

Mesajde teachme » Mar Mar 22, 2011 1:45 pm

nu am lucrat cu asa ceva pana acum, dar am gasit in documentatie la FAQ intrebarea "How can I display both X and Y values above each data point in a line, bar or scatter plot?".

http://jpgraph.net/doc/faq.php#F5-13

Avatar utilizator
boo
Senior Member
Mesaje: 267
Membru din: Mie Mar 24, 2004 8:16 pm
Localitate: Ploiesti
Contact:

Mesajde boo » Mar Mar 22, 2011 2:32 pm

Da, Multumesc este exact ceea ce cautam.
Intre timp mai gasisem si eu o solutie:

Cod: Selectaţi tot

$countx=count($datax);

for($i=0; $i<$countx; $i++){
   $text_to_add = $datay[$i].' - '.$datax[$i];
   
   $txt = new Text($text_to_add);
   $txt->SetFont(FF_FONT0,FS_BOLD);
   $txt->SetScalePos($datay[$i],$datax[$i]);
   $txt->SetColor('darkblue');
   $txt->SetBox('white','black');
   $txt->Center(50,150,75);
   $graph->AddText( $txt);
}


Înapoi la “PHP Avansat”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 5 vizitatori