PHP : Echelle de temps avec JPGRAPH
Résolu
                    
        
     
             
                    Blanc57
    
        
    
                    Messages postés
            
                
     
             
            377
        
            
                                    Statut
            Membre
                    
                -
                                     
Blanc57 Messages postés 377 Statut Membre -
        Blanc57 Messages postés 377 Statut Membre -
        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 à la ligne php ✓ - Forum PHP
- 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.
