Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > Images > Artichow
Artichow Forum d'entraide pour la bibliothèque Artichow permettant de manipuler des images en PHP.
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 07/02/2011, 09h51   #1
Membre confirmé
 
Homme Dominique
Première S
Inscription : juillet 2010
Messages : 252
Détails du profil
Informations personnelles :
Nom : Homme Dominique
Âge : 15
Localisation : France

Informations professionnelles :
Activité : Première S

Informations forums :
Inscription : juillet 2010
Messages : 252
Points : 228
Points : 228
Par défaut Graphique avec dates en abscisse

Bonjour à tous,
j'ai un site éducatif, avec des test exercices etc.
Et voilà, j'aimerai faire un bon système de statistique.
La première chose que je voudrais faire, c'est faire un graphique qui montre l'évolution des points ...
Inutile de vous expliquer plus dans les détails ce que sont les points, mais c'est en bref le nb de questions sues, fois quelques coefficients selon le niveaux de la question etc ...
Je viens de faire des essai avec artichow, en prenant le modèle line de artichow ...
Je vous passe le 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 "../artichow-php5/LinePlot.class.php";
 
$y=array(
0 => 5,
1 => 12,
2=>15,
3=>16,
4=>16,
5=>25,
6=>1
);
 
$_GET['x']=serialize($y);
 
if(isset($_GET['width'])){
$width=intval($_GET['width']);
}else{
$width=900;
}
 
if(isset($_GET['height'])){
$height=intval($_GET['height']);
}else{
$height=400;
}
 
$graph = new Graph($width, $height);
$graph->setAntiAliasing(TRUE);
$graph->border->setStyle(Line::DOTTED);
$graph->border->setColor(new Red);
 
$x=unserialize($_GET['x']);
 
$plot = new LinePlot($x);
 
$graph->add($plot);
$graph->draw();
?>
Voilà, comme vous le devinez, les paramètres sont passés dans l'URL, et les données du graphiques sont passer dans $_GET['x'] , sous forme d'array serlializé au préalable.

Le résultat est bon, ça marche.
Mais j'ai remarqué que l'on ne peut pas suivre un autre plan ! Par si l'array y était ceci :
Code :
1
2
3
4
5
6
7
8
9
10
11
<?php
$y=array(
1=> 5,
2 => 12,
3=>15,
4=>16,
5=>16,
6=>25,
7=>1
);
?>
Donc voilà, si on ne peut pas préciser les abscisses que l'on veut on ne peut pas faire ça avec des dates ! J'ai essayé : ça marche pas !

Code :
1
2
3
4
5
6
7
8
9
$y=array(
1996-01-01 => 5,
1996-01-02 => 12,
1996-01-03=>15,
1996-01-04=>16,
1996-01-05=>16,
1996-01-06=>25,
1996-01-07=>1
);
Comment faire SVP pour faire un graphique avec des dates ? Et peut-on afficher un texte sur l'abscisse ?
Par exemple remplacer 1 par "Jour 1" ? Ainsi, ça permettrait d'afficher une date à la place ...
Merci d'avance.
PS
C'est assez urgent ...
Dominique49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2011, 09h55   #2
Membre confirmé
 
Homme Dominique
Première S
Inscription : juillet 2010
Messages : 252
Détails du profil
Informations personnelles :
Nom : Homme Dominique
Âge : 15
Localisation : France

Informations professionnelles :
Activité : Première S

Informations forums :
Inscription : juillet 2010
Messages : 252
Points : 228
Points : 228
Ah oui, aussi, si vous connaissez une autre librairie spécialisées dans les graphiques avec dates, je suis prenant ! Parce que les dates .... je vais en avoir besoin dans mes graphiques !
Merci bien.
Dominique49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2011, 20h56   #3
Membre Expert
 
Avatar de nosferapti
 
Inscription : avril 2009
Messages : 1 157
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 1 157
Points : 1 129
Points : 1 129
pour afficher les date tu peux exemple utiliser un objet Plot intermédiaire comme ça :
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
40
$y=array(
'1996-01-01' => 5,
'1996-01-02' => 12,
'1996-01-03'=>15,
'1996-01-04'=>16,
'1996-01-05'=>16,
'1996-01-06'=>25,
'1996-01-07'=>1
 
);
 
$_GET['x']=serialize($y);
 
if(isset($_GET['width'])){
$width=intval($_GET['width']);
}else{
$width=900;
}
 
if(isset($_GET['height'])){
$height=intval($_GET['height']);
}else{
$height=400;
}
 
$graph = new Graph($width, $height);
$graph->setAntiAliasing(TRUE);
$graph->border->setStyle(Line::DOTTED);
$graph->border->setColor(new Red);
 
$x=unserialize($_GET['x']);
 
$group = new PlotGroup;
$group->axis->bottom->setLabelText(array_keys($x));
 
$plot = new LinePlot(array_values($x));
$group->add($plot);
$graph->add($group);
 
$graph->draw();
__________________
GNAP !
nosferapti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2011, 19h30   #4
Invité régulier
 
Homme Pascal Salaun
Administrateur systèmes et réseaux
Inscription : mars 2011
Messages : 5
Détails du profil
Informations personnelles :
Nom : Homme Pascal Salaun
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Administrateur systèmes et réseaux
Secteur : Service public

Informations forums :
Inscription : mars 2011
Messages : 5
Points : 7
Points : 7
Bonjour,

et pourquoi ne pas avoir un tableau du style :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$tab=array(
	"date" => array("1996-01-01","1996-01-02","1996-01-03","1996-01-04","1996-01-05","1996-01-06","1996-01-07"),
	"val"  => array("5","12","15","16","16","25","1")
);
 
 
$x = $tab['date'] ;
$y = $tab['val'];
 
//Generation d'une ligne
$plot = new LinePlot($y);
$plot->setColor(new Color(120, 120, 120, 10));
$plot->setFillColor(new Color(30, 30, 30, 90));
$plot->mark->setType(Mark::TRIANGLE);
$plot->mark->setFill(new DarkBlue);
$plot->mark->setSize(5);
$group->add($plot);
$group->legend->add($plot, "un titre", Legend::MARK);
 
// graduation axe X (tableau de valeur)
$group->axis->bottom->setLabelText($x);
PascalS est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h51.


 
 
 
 
Partenaires

Hébergement Web