PHP : Echelle de temps avec JPGRAPH
Résolu
Blanc57
Messages postés
369
Date d'inscription
Statut
Membre
Dernière intervention
-
Blanc57 Messages postés 369 Date d'inscription Statut Membre Dernière intervention -
Blanc57 Messages postés 369 Date d'inscription Statut Membre Dernière intervention -
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.
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:
- PHP : Echelle de temps avec JPGRAPH
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour a la ligne php - Forum Webmastering
- Alert php - Forum PHP
- Retour a la ligne php ✓ - Forum PHP
1 réponse
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.
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.