|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Administrateur de base de données Inscription : mars 2011 Messages : 21 ![]() |
Bonjour,
J'ai un problème avec la génération de mes graphiques à partir d'une base de données. Mes données contiennent des dates et valeurs qui sont rattaché à une mesure qui sont rattaché à un indicateur. L'indicateur possède 1 ou plusieurs mesures qui possède 1 ou plusieurs données. Exemple de données dans la base : Mesures : Mesure 1 Mesure 2 Données rattachée à Mesure 1 : 01.07.2011 100 02.07.2011 200 03.07.2011 300 04.07.2011 400 Données rattachée à Mesure 2 : 03.07.2011 150 04.07.2011 300 05.07.2011 400 06.07.2011 600 Je voudrais avec ces données généré un graphique dynamiquement : Le code ci-dessous fonctionne pas mal : Code :
|
||
|
|
00
|
|
|
#2 |
|
Membre du Club
![]() Clément ViguiéTechnicien SIG Inscription : janvier 2011 Messages : 37 ![]() |
Bonjour,
Quand tu dis les dates ne correspondent pas tu veux dire quoi par là jpgraph les interprete mal ou simplment entre 2 points de mesures tu n'as pas les mêmes dates et donc jp graph les affiche n'importe comment? |
|
|
00
|
|
|
#3 |
|
Membre régulier
![]() Yves Responsable en conduite du changement Inscription : janvier 2011 Messages : 63 ![]() |
A tout hasard, la date 03.07.2011 doivent être fournie à jpgrah sous la forme 2011-07-03
|
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Administrateur de base de données Inscription : mars 2011 Messages : 21 ![]() |
Non non je ne dit pas qu'il y a un problème d'interprétation le problème vient de ma boucle for each je pense et surtout des labels.
Supposons que j'aie comme valeurs ceci : Données rattachée à Mesure 1 : 01.07.2011 100 02.07.2011 200 03.07.2011 300 04.07.2011 400 Données rattachée à Mesure 2 : 03.07.2011 150 04.07.2011 300 05.07.2011 400 06.07.2011 600 Ben mon graphe aura les label mal positionée : 01.07.2011 100 150 02.07.2011 200 300 03.07.2011 300 400 04.07.2011 400 600 Comme ceci au lieu de ceci 01.07.2011 100 0 02.07.2011 200 0 03.07.2011 150 150 04.07.2011 300 300 05.07.2011 0 400 06.07.2011 0 600 Si parmi vous il y a un expert, je voudrais ensuite faire une gestion de ces mesures par exemple y ajouter une granularité (jour,semaine,mois,années) et aussi choisir un début et une fin Mais pour l'instant j'essaie tant bien que mal à faire un graph cohérent |
|
|
00
|
|
|
#5 | ||
|
Membre régulier
![]() Yves Responsable en conduite du changement Inscription : janvier 2011 Messages : 63 ![]() |
c'est plus clair.
Avec jpgraph, une valeur vide doit être remplacée par "-". Ainsi, si tu as des valeurs pour janvier, février, et, avril mais pas mars, le fait de donner à mars cette valeur sera visualisé par une ligne allant de février à avril. Tu dois donc initialiser ton tableau $xy avant d'y entrer les données. pour celà, tu dois :
Bon courage. |
||
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Administrateur de base de données Inscription : mars 2011 Messages : 21 ![]() |
Wow ça c'est du code, par contre j'ai du mal à le comprendre
que signifie date_tempon=fonction_ajoutant_colonne_jours_a_une_date($date_mini,$colonne); ? Merci |
|
|
00
|
|
|
#7 | ||
|
Membre régulier
![]() Yves Responsable en conduite du changement Inscription : janvier 2011 Messages : 63 ![]() |
[quote=ypcman;6151208]Oups, j'ai oublié un"$" avant date_tampon ...
c'est mieux ainsi : Code :
|
||
|
|
00
|
|
|
#8 | ||
|
Invité de passage
![]() Administrateur de base de données Inscription : mars 2011 Messages : 21 ![]() |
Au fait je ne comprend pas ce que dois me retourner cette fonction :
fonction_ajoutant_colonne_jours_a_une_date($date_mini,$colonne); Merci Pour l'instant mon graphe avec ces données : date val mesure 2011-08-01 1 Aout 2011-08-02 2 Aout 2011-08-03 3 Aout 2011-08-04 4 Aout 2011-08-05 5 Aout 2011-08-06 6 Aout 2011-08-07 7 Aout 2011-09-01 1 Septembre 2011-09-02 2 Septembre 2011-09-03 3 Septembre 2011-09-04 4 Septembre 2011-09-05 5 Septembre 2011-09-06 6 Septembre 2011-09-07 7 Septembre J'ai mis ce qu'il est et ce qu'il devrait être en pièce jointe L'astuce serait de mettre un array avec le nombre de dates dans un array et l'initialiser à '-' : J'ai réussi à faire ce que je voulais par contre mon code et assez brutal, il n'y aurait il pas une autre façon de l'écrire moin bourrin ? Code :
|
||
|
|
00
|
|
|
#9 | ||
|
Membre régulier
![]() Yves Responsable en conduite du changement Inscription : janvier 2011 Messages : 63 ![]() |
Tu as besoin de cette fonction pour générer l'ensemble des dates entre 2 dates données.
Si ta date la plus ancienne est le 26 février 2011, et la plus récente le 15 mars 2011, tu dois générer : 2011-02-26, 2011-02-27,2011-02-28, 2011-03-01, 2011-03-02 ,..., 2011-03-14, 2011-03-15 même si tu n'as pas de valeurs pour ces 18 jours. Cela te donneras des abscisses propres et les jours sans valeurs ayant "-" comme valeur, le graphe les ignorera. A quoi sert la fonction ? A générer ces dates sous la forme "YYYY-mm-dd". Exemple : tu es le 26 février 2011 et tu veux connaitre la date 5 jours plus tard. tu entres comme argument "2011-02-26, 5" et la fonction te retournes "2011-03-03". Exemple de code source pour cette fonction : Code :
Bon courage. |
||
|
|
00
|
|
|
#10 | ||||
|
Membre régulier
![]() Yves Responsable en conduite du changement Inscription : janvier 2011 Messages : 63 ![]() |
Bonjour.
la solution peut être nettement plus simple en fonction de ce que tu cherches à afficher.
ce n'est pas du tout la même chose. Si tu souhaites comparer des mois entre eux, tu créé simplement un tableau avec n lignes (nb de mois) et 31 colonnes que tu remplis de "0" (0 et non pas - car c'est un bar et non pas une line). J'ai repris tes données avec le bout de code suivant en en supprimant certains jours et en donnant des valeurs plus parlantes. Code :
![]() Ou bien tu ne veux que les dates pou lesquelles tu as des valeurs, ce qui donnes : Code :
|
||||
|
|
10
|
|
|
#11 |
|
Invité de passage
![]() Administrateur de base de données Inscription : mars 2011 Messages : 21 ![]() |
Wow merci pour tous ces détails
|
|
|
00
|
|
|
#12 |
![]() ![]() Andry Aimé Inscription : septembre 2007 Messages : 5 128 ![]() |
Bonjour,
Si tu veux utiliser directement GD sans télécharger JpGraph pour un Histogramme, voici un tutoriel Création de graphes statistiques et géométriques avec PHP et la librairie GDA+. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com