Problèmes graphique
Résolu
Andréa
-
Andréa -
Andréa -
Bonjour,
J'ai réalisé un graphique sous Artichow en ajoutant à l'histogramme une courbe droite permettant de visionner la moyenne des nombres.
Le problème c'est que maintenant que j'ai rajouté la courbe, le titre de l'abscisse et celui des ordonnées ne s'affichent plus ainsi que le nom de chaque région en abscisse :s
Un autre problème est celui d'afficher le chiffre de la moyenne à la fin de la courbe au lieu de le répéter sur chaque région :(
Voici mon code :
<?php
require_once "../../BarPlot.class.php";
require_once "../../LinePlot.class.php";
$graph = new Graph(500, 360);
$graph->title->set('Place de la région');
$graph->title->setFont(new Tuffy(12));
$group = new PlotGroup;
$x = array(1.79, 1.52, 1.3, 1.2, 1.18, 1.16, 1.06, 1, 0.99, 0.95, 0.94, 0.83, 0.8, 0.76, 0.74, 0.68, 0.6, 0.59, 0.49, 0.36, 0.35, 0.22);
$plot = new BarPlot($x);
$plot->setSize(1, 0.96);
$plot->setCenter(0.5, 0.52);
$group->add($plot);
$plot->yAxis->title->set("Nombre");
$plot->yAxis->title->setFont(new TuffyBold(10));
$plot->yAxis->title->move(-4, 0);
$plot->yAxis->setTitleAlignment(Label::TOP);
$plot->xAxis->title->set("Régions");
$plot->xAxis->title->setFont(new TuffyBold(10));
$plot->xAxis->setTitleAlignment(Label::RIGHT);
$y = array(
'Provence-Alpes-Côte-d Azur',
'Rhone-Alpes',
'Languedoc-Roussillon',
'Aquitaine',
'Franche-Comté',
'Auvergne',
'Limousin',
'Midi-Pyrénées',
'Alsace',
'Bourgogne',
'Corse',
'Champagne-Ardenne',
'Lorraine',
'Ile-De-France',
'Poitou-Charente',
'Picardie',
'Haute-Normandie',
'Centre',
'Nord-Pas-De-Calais',
'Pays-De-La-Loire',
'Basse-Normandie',
'Bretagne'
);
$plot->xAxis->setLabelText($y);
$plot->xAxis->label->setFont(new TuffyBold(7));
$plot->setBarColor(
new VeryLightPurple(25)
);
$plot->label->set($x);
$plot->label->move(0, -10);
$plot->label->setColor(new DarkBlue);
$x = array(0.927, 0.927, 0.927, 0.927, 0.927, 0.927, 0.927, 0.927, 0.927, 0.927, 0.927, 0.927, 0.927, 0.927, 0.927, 0.927, 0.927, 0.927, 0.927, 0.927, 0.927, 0.927, 0.927);
$plot = new LinePlot($x);
$plot->setColor(new DarkBlue);
$plot->setThickness(2);
$plot->label->set($x);
$plot->label->move(16, 0);
$group->add($plot);
$graph->add($group);
$graph->draw();
?>
Est-ce que quelqu'un aurait une idée ?
Merci bien d'avance ;)
J'ai réalisé un graphique sous Artichow en ajoutant à l'histogramme une courbe droite permettant de visionner la moyenne des nombres.
Le problème c'est que maintenant que j'ai rajouté la courbe, le titre de l'abscisse et celui des ordonnées ne s'affichent plus ainsi que le nom de chaque région en abscisse :s
Un autre problème est celui d'afficher le chiffre de la moyenne à la fin de la courbe au lieu de le répéter sur chaque région :(
Voici mon code :
<?php
require_once "../../BarPlot.class.php";
require_once "../../LinePlot.class.php";
$graph = new Graph(500, 360);
$graph->title->set('Place de la région');
$graph->title->setFont(new Tuffy(12));
$group = new PlotGroup;
$x = array(1.79, 1.52, 1.3, 1.2, 1.18, 1.16, 1.06, 1, 0.99, 0.95, 0.94, 0.83, 0.8, 0.76, 0.74, 0.68, 0.6, 0.59, 0.49, 0.36, 0.35, 0.22);
$plot = new BarPlot($x);
$plot->setSize(1, 0.96);
$plot->setCenter(0.5, 0.52);
$group->add($plot);
$plot->yAxis->title->set("Nombre");
$plot->yAxis->title->setFont(new TuffyBold(10));
$plot->yAxis->title->move(-4, 0);
$plot->yAxis->setTitleAlignment(Label::TOP);
$plot->xAxis->title->set("Régions");
$plot->xAxis->title->setFont(new TuffyBold(10));
$plot->xAxis->setTitleAlignment(Label::RIGHT);
$y = array(
'Provence-Alpes-Côte-d Azur',
'Rhone-Alpes',
'Languedoc-Roussillon',
'Aquitaine',
'Franche-Comté',
'Auvergne',
'Limousin',
'Midi-Pyrénées',
'Alsace',
'Bourgogne',
'Corse',
'Champagne-Ardenne',
'Lorraine',
'Ile-De-France',
'Poitou-Charente',
'Picardie',
'Haute-Normandie',
'Centre',
'Nord-Pas-De-Calais',
'Pays-De-La-Loire',
'Basse-Normandie',
'Bretagne'
);
$plot->xAxis->setLabelText($y);
$plot->xAxis->label->setFont(new TuffyBold(7));
$plot->setBarColor(
new VeryLightPurple(25)
);
$plot->label->set($x);
$plot->label->move(0, -10);
$plot->label->setColor(new DarkBlue);
$x = array(0.927, 0.927, 0.927, 0.927, 0.927, 0.927, 0.927, 0.927, 0.927, 0.927, 0.927, 0.927, 0.927, 0.927, 0.927, 0.927, 0.927, 0.927, 0.927, 0.927, 0.927, 0.927, 0.927);
$plot = new LinePlot($x);
$plot->setColor(new DarkBlue);
$plot->setThickness(2);
$plot->label->set($x);
$plot->label->move(16, 0);
$group->add($plot);
$graph->add($group);
$graph->draw();
?>
Est-ce que quelqu'un aurait une idée ?
Merci bien d'avance ;)
11 réponses
-
Bonjour,
En utilisant la méthode hideKey(int $key) on peut cacher les clé d'un graph :
$plot->label->set($x); //hidekey permet de caché le label souhaité for($i=0;$i<(count($x)-1);$i++){ $plot->label->hidekey($i); } $plot->label->move(16, 0); -
Pour ça il faut mettre les legendes sur la variable $group. ET puis en utilisant les methodes setAngle et setPadding on peut orienter et faire apparaitre la légende
<?php require_once "Artichow/BarPlot.class.php"; require_once "Artichow/LinePlot.class.php"; $graph = new Graph(500, 360); $graph->title->set('Place de la région'); $graph->title->setFont(new Tuffy(12)); $group = new PlotGroup; $x = array(1.79, 1.52, 1.3, 1.2, 1.18, 1.16, 1.06, 1, 0.99, 0.95, 0.94, 0.83, 0.8, 0.76, 0.74, 0.68, 0.6, 0.59, 0.49, 0.36, 0.35, 0.22); $plot = new BarPlot($x); $plot->setSize(1, 0.96); $plot->setCenter(0.5, 0.52); $plot->setBarColor( new VeryLightPurple(25) ); $plot->label->set($x); $plot->label->move(0, -10); $plot->label->setColor(new DarkBlue); $group->add($plot); $x = array(0.927,0.927,0.927,0.927,0.927,0.927,0.927,0.927,0.927,0.927,0.927,0.927,0.927,0.927,0.927,0.927,0.927,0.927,0.927,0.927,0.927,0.927,0.927); $plot = new LinePlot($x); $plot->setColor(new DarkBlue); $plot->setThickness(2); $plot->label->set($x); // hidekey permet de caché le label souhaité for($i=0;$i<(count($x)-1);$i++){ $plot->label->hidekey($i); } $plot->label->move(16, 0); $y = array( 'Provence-Alpes-Côte-d A', 'Rhone-Alpes', 'Languedoc-Roussillon', 'Aquitaine', 'Franche-Comté', 'Auvergne', 'Limousin', 'Midi-Pyrénées', 'Alsace', 'Bourgogne', 'Corse', 'Champagne-Ardenne', 'Lorraine', 'Ile-De-France', 'Poitou-Charente', 'Picardie', 'Haute-Normandie', 'Centre', 'Nord-Pas-De-Calais', 'Pays-De-La-Loire', 'Basse-Normandie', 'Bretagne' ); //Permet d'agrandir le fond du graph pour voir les légendes $group->setPadding( NULL, /* Gauche */ NULL, /* Droite */ NULL, /* Haut */ 120 /* Bas */ ); $group->axis->bottom->setLabelText($y); //Oriente les legendes verticalement $group->axis->bottom->label->setAngle(90); $group->add($plot); $graph->add($group); $graph->draw(); ?> -
Encore une fois les axes étant commun aux 2 graphs il ne faut pas utiliser la variable $plot mais $group :
$group->axis->bottom->title->set("Régions"); $group->axis->bottom->title->move(235, -20); $group->axis->bottom->title->setAngle(90); $group->axis->left->title->set("Densité"); $group->axis->left->title->move(25, -120); $group->axis->left->title->setAngle(0);
Tout ça on le retrouve sur le site artichow.org, en cherchant dans documentation on peut trouver les bonnes méthodes ou alors en regardant les exemples proposés.
Bon maintenant je vois pas ce qu'il pourrait y avoir de plus sur ce graphique... ;) -
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
-
-
Merci beaucoup :)
Saurais-tu comment faire pour que les titres de l'abscisse et de l'ordonnée s'affichent ? Ainsi que toutes les régions sur l'abscisse ??
Mercii ;) -
Regardes sur ce forum si ça réponds a la question :
http://artichow.org/forum/read.php?2,4180 -
J'ai testé et ça ne fonctionne pas :( merci pour le lien en tout cas ;)
Pour les titres ordonnée et abscisse j'ai fait ça :
$plot->yAxis->title->set("Densité");
$plot->yAxis->title->setFont(new TuffyBold(10));
$plot->yAxis->title->move(-4, 0);
$plot->yAxis->setTitleAlignment(Label::TOP);
$plot->xAxis->title->set("Régions");
$plot->xAxis->title->setFont(new TuffyBold(10));
$plot->xAxis->setTitleAlignment(Label::RIGHT);
Tout me paraît normal mais pourtant ils ne s'affichent pas :s -
Merciii beaucoup :)
Il me manque juste les 2 titres maintenant qui ne veulent toujours pas s'afficher :(
$plot->yAxis->title->set("Densité");
$plot->yAxis->title->setFont(new TuffyBold(10));
$plot->yAxis->title->move(-4, 0);
$plot->yAxis->setTitleAlignment(Label::TOP);
$plot->xAxis->title->set("Régions");
$plot->xAxis->title->setFont(new TuffyBold(10));
$plot->xAxis->setTitleAlignment(Label::RIGHT);
Si tu as une idée ;) -
Merci pour toute ton aide ;)
Oui c'est bon le graphique est parfait ! Merci pour tes conseils ;)