Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > Images > JpGraph
JpGraph Forum d'entraide pour la bibliothèque JpGraph permettant de manipuler des images en PHP. Avant de poster -> tutoriels JpGraph
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/04/2011, 11h56   #1
Futur Membre du Club
 
Homme
Inscription : mars 2009
Messages : 19
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : mars 2009
Messages : 19
Points : 16
Points : 16
Par défaut 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
Bouffe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2011, 20h10   #2
Futur Membre du Club
 
Homme
Inscription : mars 2009
Messages : 19
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : mars 2009
Messages : 19
Points : 16
Points : 16
J'ai partiellement réussi à faire ce que je voulais grâce à ce code :

Code :
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
Bouffe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2011, 20h47   #3
Futur Membre du Club
 
Homme
Inscription : mars 2009
Messages : 19
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : mars 2009
Messages : 19
Points : 16
Points : 16
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 :
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 :
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));
 
?>
Bouffe est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h26.


 
 
 
 
Partenaires

Hébergement Web