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] Graphique ordonné en heures


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 21
    Points : 26
    Points
    26
    Par défaut [JpGraph] Graphique ordonné en heures
    Bonjour à toutes et à tous,

    Je cherche à faire un graphique avec en ordonnées des valeurs en euros, et en abscisses, le temps par heure.

    En fait il y aura plusieurs graphique, un par jour.
    Le graphique aura donc 24h sur toute sa longueur.

    Le soucis est que mes heures sont approximatives, elles peuvent êtres stockées à des heures non fixes, par exemple :

    05h14 : 0.25€
    10h53 : 0.50€
    12h47 : 0.75€
    17h25 : 0.32€
    22h30 : 0.25€

    Or j'aimerai que mon affichage reste avec une échelle bien précise, à savoir n'afficher que les heures "piles" (01h, 02h, 03h ... 22h, 23h, 00h).

    Y'a-t-il une possibilité pour que je puisse afficher tous les points que j'ai, mais en gardant une bonne échelle de temps en abscisse, sans pour autant calculer la moyenne entre deux heures ?

    Merci de vos réponses,

    Taz

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 21
    Points : 26
    Points
    26
    Par défaut
    J'ai partiellement réussi à faire ce que je voulais grâce à ce 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
     
    <?php
    require_once ("jpgraph/jpgraph.php");
    require_once ("jpgraph/jpgraph_line.php");
     
    // Convertion timestamp en heure
    function TimeCallback($aVal) {
        return Date('H:i:s',$aVal);
    }
     
    // Mon tableau d'ordonnée contient mes valeurs en euros
    $datay [] = ...
     
    // Mon tableau d'abscisse contient les timestamps de mes valeurs en euros
    $datax [] =
     
    // Création du graphique
    $graph = new Graph(900,500);
    $graph->SetMargin(40,40,30,70);    
    $graph->title->Set('Recette');
     
    // Echelle en x commence à minuit et fini à minuit le lendemain (le tout en timestamp)
    $graph->SetScale("linlin","auto","auto",mktime(0, 00, 00, 04, 16, 2011),mktime(0, 0, 0, 04, 17, 2011));
     
    // Mise de x-axis avec un format timestamp
    $graph->xaxis->SetLabelFormatCallback('TimeCallback');
    $graph->xaxis->SetLabelAngle(90);
     
    $p1 = new LinePlot($datay,$datax);
    $p1->SetColor("blue");
     
    $p1->SetFillColor("blue@0.4");
     
    $graph->Add($p1);
     
    //Affichage
    $graph->Stroke();
     
    ?>
    Ce code fonctionne et me donne un graphique ressemblant à ceci :



    Ici les abscisses sont séparées par 1h23min20s, et je cherche un moyen de transformer ceci en un espace de 1h seulement.

    Merci pour votre aide

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 21
    Points : 26
    Points
    26
    Par défaut
    Je me répond encore à moi même pour donner la solution :

    Dans le code précédent, il y a que deux choses à changer

    Premièrement, rajouter le fichier qui gère les dates :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    require_once ("jpgraph/jpgraph_date.php");
    ?>
    Deuxièmement, changer le "linlin" en "datlin" pour le SetScale du graph afin qu'il prennent bien en compte les dates.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
     
    $graph->SetScale("datlin","auto","auto",mktime(0, 00, 00, 04, 16, 2011),mktime(0, 0, 0, 04, 17, 2011));
     
    ?>

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

Discussions similaires

  1. [JpGraph] JPgraph > Gantt > dates et heures précises
    Par lorenplak dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 11/04/2013, 15h11
  2. [XL-2007] Graphique - ordonnée automatique qui fonctionne mal
    Par Tsantawu dans le forum Excel
    Réponses: 1
    Dernier message: 28/06/2012, 11h53
  3. [JpGraph] jpgraph : graphiques en boucle sur la même page
    Par fred480 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 19/11/2010, 21h12
  4. Problème de graphique par date+heure
    Par vincente56 dans le forum IHM
    Réponses: 1
    Dernier message: 08/07/2010, 12h10
  5. [JpGraph] Graphique et pdf
    Par coco38 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 28/04/2007, 09h05

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