Retroceder   Foros del Web > Programación para sitios web > PHP

Respuesta
 
Herramientas Desplegado
Antiguo 23-jun-2008, 09:09   #1 (permalink)
sebas.valenciano ha deshabilitado el karma
 
Fecha de Ingreso: agosto-2007
Mensajes: 37
Enviar un mensaje por MSN a sebas.valenciano
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,'#EFEFEF@0.5','#f7f9ff@0.5');

$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-jun-2008 a las 10:11. Razón: corrijo el code :)
sebas.valenciano está desconectado   Responder Citando
Antiguo 24-jun-2008, 09:38   #2 (permalink)
$this->role('moderador');
GatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradable
 
Avatar de GatorV
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ags/
Mensajes: 16.008
Respuesta: Duda sobre Jpgraph: SetTickLabels

Hola sebas.valenciano,

Tu estas usando con SetScale, le pasas que es fecha, y jpgraph automáticamente usa date internamente para obtener los resultados, para formatearlos a una fecha en español debes de usar date_timezone_set, y setlocale.

Saludos.
__________________
Blog Web
GatorV está desconectado   Responder Citando
Antiguo 01-jul-2008, 06:18   #3 (permalink)
sebas.valenciano ha deshabilitado el karma
 
Fecha de Ingreso: agosto-2007
Mensajes: 37
Enviar un mensaje por MSN a sebas.valenciano
Respuesta: Duda sobre Jpgraph: SetTickLabels

hola!

he estado mirando en Google acerca de date_timezone_set, y setlocale en el uso de jpgraph pero no he visto nada...


he probado poner:
Código:
date_timezone_set('Europe/Madrid');
setlocale(LC_TIME, 'es_ES');

y esto otro
Código:
setlocale(LC_TIME,"es_ES", "es", "spanish"); 
setlocale (LC_TIME,"es", "spanish", "es_ES.UTF-8"); 
pero no consigo traducir las fechas...

el objetivo es tener en el eje de las X algo tal como:

Dic-07, Ener-08, Febr-08.... es decir, en español

hay algún detalle que se me escapa?



gracias

Última edición por sebas.valenciano; 01-jul-2008 a las 06:42. Razón: modifico la consulta
sebas.valenciano está desconectado   Responder Citando
Antiguo 24-ago-2008, 09:36   #4 (permalink)
Exalin ha deshabilitado el karma
 
Fecha de Ingreso: agosto-2008
Ubicación: Valparaiso, Chile
Mensajes: 4
Enviar un mensaje por MSN a Exalin
Respuesta: Duda sobre Jpgraph: SetTickLabels

Pues yo así fue que solucioné ese problema también, con un array de meses del estilo:

Código PHP:
$meses = array(enerofebrero, .....) 
y luego poniéndolo en el setticklabels
Exalin está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 10:25.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96