IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[JpGraph] Mettre date sur abscisse


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 105
    Points : 52
    Points
    52
    Par défaut [JpGraph] Mettre date sur abscisse
    Bonjour,

    Je débute avec Jpgraph, je souhaite sortir des stats concernant des log IIS stockée dans une base de donnée.

    En abscisse le temps et en ordonnée le nombre d'appel du web service.

    ma requête sql :select url, temps, nbappel FROM dbo.IISLog where url= 'URL' order by TEMPS

    Avec le code ci-dessous j'affiche bien un graphique courbe avec le nombre d'appel en ordonnée mais j'ai aucune légende en ordonnée.

    Je pense qu'il faut récupérer la valeur min(temps) et max(temps) et ensuite utilisé une fonction jpgraph pour afficher en découpant toutes les 10 minutes.

    Voilà mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    <?php
     
    require_once ('../jpgraph.php');
    require_once ('../jpgraph_line.php');
     
    require_once ("../jpgraph_date.php");
     
     
    $serverName = "localhost";
    $username = "php";
    $password = "****";
    $database = "Base";
     
    $sql = <<<EOF
    select	url, temps, nbappel FROM dbo.IISLog where url= 'URL' order by TEMPS
    EOF;
     
    $mssqlQuery = sqlsrv_query( $conn, $sql) or die('Pb de requete');
     
    $mssqlQuery = sqlsrv_query( $conn, $sql) or die('Pb de requete');
     
    $tableauTemps = array();
    $tableauAppel = array();
     
    while ( $row = sqlsrv_fetch_array( $mssqlQuery, SQLSRV_FETCH_ASSOC)) 
    {
    				$tableauAppel[] = $row['NbAppel']; //datay
    				$tableauTemps[] = $row['TEMPS']; //datax
    }
     
    $datastart = $tableauTemps[0]
     
    $graph = new Graph(1000,950);
    $graph->SetScale('datlin');
     
    $theme_class=new UniversalTheme;
     
    $graph->SetTheme($theme_class);
    $graph->img->SetAntiAliasing(false);
    $graph->title->Set('Nb Appel webservice');
    $graph->SetBox(true);
     
    $graph->img->SetAntiAliasing();
     
    $graph->yaxis->HideZeroLabel();
    $graph->yaxis->HideLine(false);
    $graph->yaxis->HideTicks(false,false);
    $graph->yaxis->title->Set("NbAppel"); 
    $graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
     
     
    $graph->xgrid->Show();
    $graph->xgrid->SetLineStyle("solid");
    $graph->xgrid->SetColor('#E3E3E3');
    $graph->xaxis->title->Set("Temps"); 
    $graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
    $graph->xaxis->SetTickLabels($tableauTemps); 
     
     
     
    // Create the line
    $courbe = new LinePlot($tableauAppel);
     
     
    //$courbe->SetColor("blue");
    $courbe->SetCenter();
    $courbe->SetLegend(NBAppel);
     
     
    // Ajouter la courbe au conteneur
    $graph->Add($courbe);
     
    $graph->Stroke(); 
     
    sqlsrv_close( $conn);
     
     
    ?>

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 105
    Points : 52
    Points
    52
    Par défaut
    Après plusieurs recherche j'ai trouvé une solution.

    Modification de la requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $sql = <<<EOF
    select	url, datediff(S, '1970-01-01', TEMPS) as SecondsSinceEpoch, nbappel FROM dbo.IISLog where url= 'URL' order by TEMPS
    EOF;
    Modification de la variable SetScale en datlin et formatage de l'affichage avec les variable ci-dessous
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $graph->SetScale('datlin');
    $graph ->xaxis->scale-> SetDateFormat('d-m-Y H:i');
    Pour finir mise à jour de variable LinePlot comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $courbe = new LinePlot($tableauAppel,$tableauTemps);
    ca fonctionne.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [JFREECHART] mettre date en X et Y sur graphique
    Par zozolh2 dans le forum Interfaces Graphiques en Java
    Réponses: 2
    Dernier message: 13/03/2010, 19h18
  2. [JpGraph] Mettre des valeurs manuellement sur une échelle
    Par Xandrine dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 26/06/2008, 11h11
  3. Mettre une Date sur Form
    Par Xtian dans le forum Forms
    Réponses: 1
    Dernier message: 16/06/2008, 11h27
  4. Réponses: 1
    Dernier message: 24/05/2007, 16h02
  5. Mettre des dates en abscisse
    Par ultimate_manx dans le forum MATLAB
    Réponses: 1
    Dernier message: 22/05/2007, 17h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo