Artichow : Forum Artichow !
Aller à la page:  12Suivante
Page courante:1 sur 2
Valeurs sur le camembert
Auteur: jerem (IP enregistrée)
Date: le 21 juillet 2010, 02:01

Bonjour,

au lieu que ça soit marqué les pourcentages sur mon camemberts, j'aimerai que les valeurs que j'ai donnée soit inscrites.

Est ce possible ?

Merci d'avance.



Message édité 1 fois. Dernière modification le le 21/07/10 à 02:01

Re: Valeurs sur le camembert
Auteur: peofofo (IP enregistrée)
Date: le 21 juillet 2010, 07:37

Bonjour,


$values=Array(10,12,5,0,8);//tes valeurs

Il te suffit d'ajouter :
$plot->label->set($values);
$plot->label->setCallbackFunction(NULL);

Re: Valeurs sur le camembert
Auteur: jerem (IP enregistrée)
Date: le 21 juillet 2010, 13:27

merci ça fonctionne parfaitement,

j'ai juste un problème bizarre,

quand je met par exemple un 0, ça me met l'inverse de ce que je veux.

je m'explique, j'ai deux valeurs dans array(10,0) par exemple et quand je fais le graphique c'est la couleur du 0 qui domine :o

exemple ici > [www.raquettebreceenne.com]

où j'ai ça dans le code :

<?php

require_once('Artichow/Pie.class.php');

function makePie($values, $legend, $title, $x, $y) {
$pie = new Pie($values, Pie::COLORED);

$pie->title->set($title);
$pie->title->setFont(new TuffyItalic(9));
$pie->title->move(0, -5);

$pie->label->set($values);
$pie->label->setCallbackFunction(NULL);
$pie->setLabelPosition(-35);
$pie->label->setFont(new Tuffy(10));
$pie->label->setBackgroundColor(new White(50));
$pie->label->setPadding(2, 2, 2, 2);

$pie->setCenter($x, $y);

$pie->setSize(.45, .45);

$pie->setBorderColor(new Black());

if (is_array($legend)) {
$pie->setLegend($legend);
$pie->legend->setTextFont(new Tuffy(8)); }
else {
$pie->legend->hide();
}

return $pie;
}

$graph = new Graph(450, 280);

$graph->shadow->setPosition(Shadow::RIGHT_BOTTOM);
$graph->shadow->setSize(4);

$graph->setBackgroundGradient(
new LinearGradient(
new Color(240, 240, 240, 0),
new White,
0
)
);
$pie = makePie(array(0, 1), NULL, 'Contre moins de points', .25, .23);
$graph->add($pie);

$pie = makePie(array(1, 20), NULL, 'Contre plus de points', .75, .23);
$graph->add($pie);

$pie = makePie(
array(2, 1),
array('Victoire', 'Défaite'),
'En tout',
.5,
.67
);

$colors = array(
new Color(190, 86, 86, 12));
$pie->legend->setModel(Legend::MODEL_BOTTOM);
$pie->legend->setPosition(-.08, 1);
$graph->add($pie);

$graph->draw();
?>

merci


Re: Valeurs sur le camembert
Auteur: peofofo (IP enregistrée)
Date: le 21 juillet 2010, 15:10

Bonsoir,

Une solution (correction bug artichow)
[artichow.org]

Salutations,

Re: Valeurs sur le camembert
Auteur: jerem (IP enregistrée)
Date: le 21 juillet 2010, 19:44

peofofo a �crit:
-------------------------------------------------------
> Bonjour,
>
> Voici la solution :
> Il suffit d'ajouter ceci :
> if($value/$sum < 0.01)
> {
> $value=$sum*0.005; // Le minimum
> }
> dans le fichier Pie.class.php
>
> Comme ceci:
> foreach($this->values as $key => $value) {
>
> if($value/$sum < 0.01)
> {
> $value=$sum*0.005;// Le minimum
> }
> $angle = ($value / $sum * 360);
>
> if($key === $count - 1) {
> $angle = 360 - $angles;
> }
>
> Et normalement toutes les valeurs qui auront un
> pourcentage inf�rieur 0.001% auront
> syst�matiquement l'angle � 0.
>
> Je ne fais pas parti d'Artichow, mais j'ai
> modifi�s et am�lior�s quelques passages de
> certaines classes.
>
> Cordialement,


il faut que je mette tout ça dans le fichier que vous avez dit ?
merci =)

Re: Valeurs sur le camembert
Auteur: peofofo (IP enregistrée)
Date: le 21 juillet 2010, 20:02

Il faut remplacer dans la classe le bout de code au dessus.



Message édité 3 fois. Dernière modification le le 21/07/10 à 20:06

Re: Valeurs sur le camembert
Auteur: jerem (IP enregistrée)
Date: le 21 juillet 2010, 20:27

voilà j'ai remplacé et rien de changé ...

quand je met 0 à défaite, et bien tout est rouge comme la couleur de la défaite ...

merci d'avance ;)

Re: Valeurs sur le camembert
Auteur: peofofo (IP enregistrée)
Date: le 22 juillet 2010, 08:31

Peux tu me donner ton code ainsi que les valeurs des arrays pour tester.

Salutations,

Re: Valeurs sur le camembert
Auteur: jerem (IP enregistrée)
Date: le 22 juillet 2010, 12:12

merci, par exemple ça, le premier graphique est faux !

<?php

require_once('Artichow/Pie.class.php');

function makePie($values, $legend, $title, $x, $y) {
$pie = new Pie($values, Pie::COLORED);

$pie->title->set($title);
$pie->title->setFont(new TuffyItalic(9));
$pie->title->move(0, -5);

$pie->label->set($values);
$pie->label->setCallbackFunction(NULL);
$pie->setLabelPosition(-35);
$pie->label->setFont(new Tuffy(10));
$pie->label->setBackgroundColor(new White(50));
$pie->label->setPadding(2, 2, 2, 2);

$pie->setCenter($x, $y);

$pie->setSize(.45, .45);

$pie->setBorderColor(new Black());

if (is_array($legend)) {
$pie->setLegend($legend);
$pie->legend->setTextFont(new Tuffy(8)); }
else {
$pie->legend->hide();
}

return $pie;
}

$graph = new Graph(450, 280);

$graph->shadow->setPosition(Shadow::RIGHT_BOTTOM);
$graph->shadow->setSize(4);

$graph->setBackgroundGradient(
new LinearGradient(
new Color(240, 240, 240, 0),
new White,
0
)
);
$pie = makePie(array(0, 1), NULL, 'Contre moins de points', .25, .23);
$graph->add($pie);

$pie = makePie(array(1, 20), NULL, 'Contre plus de points', .75, .23);
$graph->add($pie);

$pie = makePie(
array(1, 21),
array('Victoire', 'Défaite'),
'En tout',
.5,
.67
);

$colors = array(
new Color(190, 86, 86, 12));
$pie->legend->setModel(Legend::MODEL_BOTTOM);
$pie->legend->setPosition(-.08, 1);
$graph->add($pie);

$graph->draw();
?>


Re: Valeurs sur le camembert
Auteur: peofofo (IP enregistrée)
Date: le 22 juillet 2010, 21:52

Bonsoir,

Il manque une partie de votre code que vaut les variables:
$values, $legend, $title, $x, $y,$legend...
Donnez moi toutes les valeurs pour que je puisse tester!

Cordialement,



Message édité 1 fois. Dernière modification le le 22/07/10 à 21:56

Aller à la page:  12Suivante
Page courante:1 sur 2


Seules les personnes enregistrées peuvent poster sur ce forum.