Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/06/2008, 08:09
sebas.valenciano
 
Fecha de Ingreso: agosto-2007
Mensajes: 37
Antigüedad: 16 años, 8 meses
Puntos: 0
Duda sobre Jpgraph: SetTickLabels

Hola,

estoy creando un gráfico con Jpgraph con datos de una BD.

En el eje vertical Y: tengo los valores
En el eje horizontal X: tengo las fechas

Para cada día X tengo un valor Y.

Ya tengo todo el gráfico hecho, el problema que me lleva ya unos días es en el cambio de los "labels". Actualmente tengo personalizado los labels del eje X de la siguiente forma:
de la fecha, sólo muestro el mes "January", "February" "March"

el tema es que lo quiero traducir, y para ello he creado un array asociativo:
$meses = array ("1"=> "Enero", "2"=>"Febrero" ..... ) el cual mediante varias operaciones, genero un nuevo array con las etiquetas (labels) traducidas para el eje X.


resumiendo...

tengo 3 arrays:

$data //con los valores del eje Y, en total 120 items
$xdata // con las fechas del eje X,en total 120 item
$etiquetas // con los labels, también con 120 items

hago print_r para todos los arrays, y veo que tienen sus valores correctos :)

el tema es que para "setear" las nuevas labels uso:

$graph->xaxis->SetTickLabels($etiquetas);


Lo cual sólo funciona (nombre del mes en español) para el primer punto (x,y), porque en el resto de puntos sigue apareciendo el formato por defecto (nombre del mes en inglés) en el label

¿Sabeis por qué sólo lo aplica al primer elemento?

he evisado todo el docs, el how to, la community... pero nada que me lleve a la solución. Insisto en la rareza de que funcione sólo al primer item.

si alguien sabe algo, lo agradeceré!!




algo del código por si os sirve:


Código PHP:
$graph = new Graph(420,160);
$graph->SetMargin(60,20,10,50);//izda, dcha, arriba, abajo

$graph->SetScale('datlin',0,0);

$graph->title->SetFont(FF_FONT1 ,FS_BOLD);

//$graph->xaxis->SetLabelAngle(90);
$graph->xaxis->scale->SetDateFormat("M");

$graph->xaxis->SetTickLabels($etiquetas);
$graph->xaxis->SetTextLabelInterval(30);

$graph->xaxis->SetLabelFormatString('My',true);


$graph->xaxis->SetColor("#565656");
$graph->yaxis->SetColor("#565656");
$graph->ygrid->SetFill(true,'#[email protected]','#[email protected]');

$graph->SetGridDepth(DEPTH_BACK);
$graph->SetMarginColor('white');
$graph->SetFrame(false);
$graph->yaxis->HideZeroLabel();


//$graph->xaxis->HideFirstLastLabel(); 


$graph->xtick_factor 1;
$graph->xaxis->HideTicks(truetrue); 


$line = new LinePlot($data,$xdata);
$line ->SetColor("#007BA8"); 
//$line->SetLegend('Year 2005');
$line->SetFillColor('#DDE5FF');
//$line->value->Show();  //Muestra los valores sobre sus coordenadas (x,y)
$graph->Add($line);

$graph->Stroke();


//echo "etiquetas: <br><br>"; print_r($etiquetas); echo "<br><br>";

//echo "los datos son: <br><br>"; print_r($xdata); 

Última edición por sebas.valenciano; 23/06/2008 a las 09:11 Razón: corrijo el code :)