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 :

Module Graphique PHP


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre averti
    Inscrit en
    Septembre 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 14
    Par défaut Module Graphique PHP
    Bonjour,

    Je travail depuis peu avec PHP et je voudrais génerer des graphiques à partir des résultats de mes requêtes SQL. En parcourant un peu le site, j'ai trouvé plusieurs module me permettant de créer des graphiques.

    Ma question concerne l'affichage de ces graphiques, j'ai besoin d'afficher un graphique contenant 2880 points au minimum et 89280 points au maximum.
    Ce qui correspond à une periode comprise entre 1 et 31 jours avec un point toutes les 30 secondes.

    Je me demande donc si ces modules graphiques sont capables d'afficher un graphique de 90000 points. Vu le nombre de pixels de l'écran je me doute bien que ce n'est pas possible d'afficher les 90000 points côte à côte surtout que mon graphique ne doit pas exeder 600 pixels de largeur, mais est_il possible d'obtenir tout de même la forme de la courbe ?


    Voila, j'espère que ma question est conpréhensible.
    Merci.

  2. #2
    Membre chevronné Avatar de rikemSen
    Homme Profil pro
    Analyste Développeur Web - Fizzup.com
    Inscrit en
    Décembre 2007
    Messages
    387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste Développeur Web - Fizzup.com
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 387
    Par défaut
    Je ne sais pas si c'est possible mais une solution serait de faire pour une periode de 2-3minutes la moyenne et ainsi, tu réduirais le nombre de pts.

  3. #3
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Il faut impérativement que tu groupes les résultats ou sinon ça va ramer méchant

    Tu peux également te tourner vers les solution de graphique JavaScript, c'est ça de moins en charge pour ton serveur: http://g.raphaeljs.com/

  4. #4
    Membre averti
    Inscrit en
    Septembre 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 14
    Par défaut
    Citation Envoyé par radicaldreamer Voir le message
    Je ne sais pas si c'est possible mais une solution serait de faire pour une periode de 2-3minutes la moyenne et ainsi, tu réduirais le nombre de pts.
    J'y ai penser, faire une moyenne sur 15 minutes me permetrait d'afficher le mois entier avec environ 3000 points, mais je ne vois pas vraiment comment faire cette moyenne..

    Exemple en faisant des moyennes sur 3 minutes :

    http://hpics.li/dc05402


    Existe-t-il une requête capable de faire des moyennes par tranche de 3 minutes ? oubien d'autre solution..

  5. #5
    Membre averti
    Inscrit en
    Septembre 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 14
    Par défaut
    Citation Envoyé par Benjamin Delespierre Voir le message
    Il faut impérativement que tu groupes les résultats ou sinon ça va ramer méchant

    Tu peux également te tourner vers les solution de graphique JavaScript, c'est ça de moins en charge pour ton serveur: http://g.raphaeljs.com/
    Excuse moi mais je ne comprend pas vraiment ce que tu veux dire par grouper les résultats.
    Une solution JavaScript me permetrait d'afficher un plus grand nombre de points ? Ou simplement d'améliorer le temps de réponse ?

    Le problème c'est que si j'utilise du JavaScript, j'ai besoin d'une solution toute faite car je ne connais pas le Java, à chaque fois que je l'utilise, ce n'est pas moi qui tape le code..

  6. #6
    Membre chevronné Avatar de rikemSen
    Homme Profil pro
    Analyste Développeur Web - Fizzup.com
    Inscrit en
    Décembre 2007
    Messages
    387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste Développeur Web - Fizzup.com
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 387
    Par défaut
    En sql:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT AVG( moyenne ) AS moyenneclasse FROM etudiant ;

    A toi d'adapter et de faire une requete SQL.
    __________________

    En php:
    Si tu sais que tes points sont toutes les 30s:
    15min = 15*2. 30

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $val = 0;
    while(...){
      if($val != 29){
        $val = $val + $valeur_point;
      }else{
        echo $val/30;
        $val = 0;
     
    }
    Un truc du genre.

  7. #7
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Excuse moi mais je ne comprend pas vraiment ce que tu veux dire par grouper les résultats.
    Oui, comme Radicaldreamer t'en a parlé, par lots de X minutes. Voir plus bas.

    Une solution JavaScript me permetrait d'afficher un plus grand nombre de points ? Ou simplement d'améliorer le temps de réponse ?
    Les deux mon n'veux.

    Le problème c'est que si j'utilise du JavaScript, j'ai besoin d'une solution toute faite car je ne connais pas le Java, à chaque fois que je l'utilise, ce n'est pas moi qui tape le code..
    Y'a tous les exemples de codes sur le site de graphael, c'est pas bien compliqué et ça ressemble à jQuery. Enfin, si tu n'es pas à l'aise et que tu ne veux pas te compliquer la vie, fais du PHP.

    Une solution simple pour grouper les éléments par lots est d'alouer un tableau de n entrées (pour n lots).
    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
     
    <?php
     
    $start_time = time() - 24 * 3600;
     
    $results = $pdo->query("SELECT `timestamp`,`count` FROM `table` WHERE `timestamp`>'$start_time'");
     
    // Un tableau pour 24h par exemple
    $data = array_fill(0, 24, 0);
     
    // $results est ton résultat de bdd
    foreach ($results as $row) {
    	$offset = ceil(($row['timestamp'] - $start_time) / 3600);
    	$data[$offset] += $row['count'];
    }
    Si tu arrives à grouper dans la requête SQL c'est encore mieux.

  8. #8
    Membre averti
    Inscrit en
    Septembre 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 14
    Par défaut
    merci beaucoup des réponses

    Je vais m'informer sur le JavaScript quand même mais avant, je tiens à finir mon application pour qu'elle soit fonctionnelle dans un premier temps, et ensuite je verrais les évolutions possibles.

    Donc vous me dite qu'il est possible via une requête SQL de grouper mes résultats par tranche de 30 valeurs et d'en ressortir uniquement les moyennes de ces tranches ?

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

Discussions similaires

  1. Probleme de Key event sur le module Graphique
    Par Dlieu dans le forum Caml
    Réponses: 5
    Dernier message: 05/12/2007, 19h17
  2. Réponses: 5
    Dernier message: 10/04/2007, 20h02
  3. Module dynamique PHP
    Par tedparker dans le forum Zend
    Réponses: 6
    Dernier message: 29/12/2006, 12h50
  4. Les Modules Graphiques
    Par Girzi dans le forum Modules
    Réponses: 1
    Dernier message: 15/11/2006, 20h14

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