PHP : Echelle de temps avec JPGRAPH

Résolu/Fermé
Blanc57 Messages postés 369 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 27 janvier 2020 - 6 févr. 2011 à 12:00
Blanc57 Messages postés 369 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 27 janvier 2020 - 7 févr. 2011 à 01:54
Bonjour,

J'ai un problème avec JPGRAPH. Je tente de faire un graph montrant des courbe de performance sur une journée.
C'est au niveau de l'échelle de temps sur l'axe X que cela coince.

Mes données vont de 0:11 à 22:37.

Sans cette ligne : "$graph->xaxis->SetTickLabels($tdata) ;":
L'échelle affichée va de 0:00 à 1:50

Si j'ajoute cette ligne, l'échelle affiche bien les valeurs de 0:11 à 22:37 mais continue en reprenant de 1:44 à 1:50...

Je ne sais pas si je suis suffisamment clair mais je n'arrive pas à faire coller et limiter l'échelle de l'axe X au données dont je dispose.

J'ai fait des recherches sur le net mais j'avoue avoir du mal à m'en sortir...

Voici une partie de mon code PHP :

$sql = "SELECT TIME,".$INDIC." FROM GLOBALSTATS WHERE DATE='".$actdate."' and ENV='".$appli."' ORDER BY TIME";
$stmt = db2_prepare($conn, $sql);
$result = db2_execute($stmt);

while ($row = db2_fetch_both($stmt)) {
$xdata[] = $row[0] ;
$tdata[] = date('H:i',strtotime($row[0]));
$ydata[] = $row[1] ;
}

// Creation du graphique
//
$graph = new Graph($width, $heigth);
$graph->SetMargin(40,40,40,60);
$graph->SetScale('datlin',0,max($ydata));
$graph->xaxis->SetTickLabels($tdata) ;
$graph->xaxis->scale->SetTimeAlign(min($xdata),max($xdata));
$graph->xaxis->scale->SetDateFormat('H:i',true);

// Generation de la courbe
$lineplot = new LinePlot($ydata);
$lineplot->SetColor('#2554C7');

Merci d'avance à tous ceux qui pourront m'aider.


A voir également:

1 réponse

Blanc57 Messages postés 369 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 27 janvier 2020 73
Modifié par Blanc57 le 7/02/2011 à 01:55
Je viens de trouver la solution :

J'ai supprimé la déclaration manuelle des valeurs sur l'axe X :
// $graph->xaxis->SetTickLabels($tdata) ;

J'ai défini les valeurs de l'axe X comme timestamps :
$tdata[] = strtotime($row[0]);

et j'ai définit le format de date à afficher sur l'axe X :
$graph->xaxis->scale->SetDateFormat('d/m/Y', true);

A présent, cela fonctionne.
0