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 ;)
A voir également:
- Problèmes graphique
- Changer carte graphique - Guide
- Graphique sparkline - Guide
- Graphique camembert excel - Guide
- Comment faire un graphique sur excel - Guide
- Planification de processeur graphique à accélération matérielle - Guide
11 réponses
Bonjour,
En utilisant la méthode hideKey(int $key) on peut cacher les clé d'un graph :
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 :
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... ;)
$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 ;)
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 ;)
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
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 ;)
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 ;)