Les Allergies
Alimentaires
Posez votre question Signaler

Problèmes graphique [Résolu]

Andréa - Dernière réponse le 17 juin 2010 à 10:59
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 ;)
Lire la suite 

Problèmes graphique »

11 réponses
Réponse
+1
moins plus
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);
Ajouter un commentaire
Réponse
+1
moins plus
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();
?>
Ajouter un commentaire
Réponse
+1
moins plus
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... ;)
Ajouter un commentaire
Réponse
+0
moins plus
Personne ne peut m'aider ? :(
Ajouter un commentaire
Réponse
+0
moins plus
S'il vous plaît c'est assez urgent :s
Ajouter un commentaire
Réponse
+0
moins plus
HELP... :(
Ajouter un commentaire
Réponse
+0
moins plus
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 ;)
Ajouter un commentaire
Réponse
+0
moins plus
Regardes sur ce forum si ça réponds a la question :
http://artichow.org/forum/read.php?2,4180
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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 ;)
Ajouter un commentaire
Réponse
+0
moins plus
Merci pour toute ton aide ;)

Oui c'est bon le graphique est parfait ! Merci pour tes conseils ;)
Ajouter un commentaire
Ce document intitulé « Problèmes graphique » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?