[PHP] Artichow: la légende du camembert!!

Fermé
redwire Messages postés 254 Date d'inscription jeudi 16 décembre 2004 Statut Membre Dernière intervention 6 août 2008 - 27 avril 2007 à 10:57
 ensias - 1 août 2008 à 12:09
Bonjour!

Je suis en train de faire mon premier "camembert" avec artichow et débutant avec la chose:

Voici le code de ma page:
<?php

   // Les valeurs à afficher sur le graphique
   // Elles doivent être dans un tableau
   $values = array(1, 2, 3, 5, 2);
        $absc = array('born to run', 'darkness', 'the river', 'nebraska', 'BitUSA'); //libellé de légende
        $titre = 'mon titre à moi';


   echo "<img src='camembert1.php?titre=$titre&amp;absc=".urlencode(serialize($absc))."&amp;values=".urlencode(serialize($values))."' alt='Mon graphique'/>";
?>


Et le code de mon camembert:
   // On récupère les valeurs à afficher sur le graphique dans $_GET['values'] et on les désérialize
   $data = @unserialize($_GET['values']);
   $absc = @unserialize($_GET['absc']);
   $titre= $_GET['titre'];
   
   // On vérifie que les données passées en GET sont correctes
   if(is_array($data) === FALSE) {echo "out";
      exit;
   }

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

$graph = new Graph(750, 480);
// ... ajout d'une ombre portée...
$graph->shadow->setPosition(SHADOW_RIGHT_BOTTOM);
$graph->shadow->setSize(4);

// ... et d'un joli fond.
$graph->setBackgroundGradient(
        new LinearGradient(
                new Color(240, 240, 240, 0),
                new Red,
                0
        )
);

// Seules les valeurs numériques sont utilisées pour l'instant,
// avec le thème de couleur par défaut.
$pie = new Pie(array_values($data));
// Affiche les pourcentages avec une précision d'un dixième.
$pie->setLabelPrecision(1);

// Ajout de la légende
$pie->setLegend($absc);
// Repositionnement de la légende
$pie->legend->setPosition(1.45, 0.25);

// Décalage du camembert sur la gauche et vers le bas
$pie->setCenter(.36, .58);
// Redimensionnement du camembert, taille relative à l'objet Graph le contenant.
$pie->setSize(.65, .65);
// Ajout d'un petit effet 3D; la valeur est donnée en pixel.
$pie->set3D(5);

// Ajout d'un titre..
$pie->title->set($titre);
// ... repositionnement...
$pie->title->move(0, -40);
// ... et embellissement.
$pie->title->setFont(new TuffyBold(14));
$pie->title->setBackgroundColor(new White(50));
$pie->title->setPadding(5, 5, 2, 2);
$pie->title->border->setColor(new Black());

$graph->add($pie);

$graph->draw(); ?>


Mon problème est que je ne récupère pas les libellés de mes légendes:
$absc = array('born to run', 'darkness', 'the river', 'nebraska', 'BitUSA');
ou alors ils ne s'affichent pas... car la zone légende est petite.
Comment gérer la dimension de la légende?
Je n'ai que 1, 2, 3 , 4 à la place.

http://winton99.free.fr/allthoseyears/public/feuilleaveccam.php


Merci de votre aide! :)
A voir également:

5 réponses

redwire Messages postés 254 Date d'inscription jeudi 16 décembre 2004 Statut Membre Dernière intervention 6 août 2008 91
28 avril 2007 à 09:40
un petit up!

:-)
2
redwire Messages postés 254 Date d'inscription jeudi 16 décembre 2004 Statut Membre Dernière intervention 6 août 2008 91
30 avril 2007 à 10:16
J'aimerai surtout savoir si je passe correctement mes paramètres, c'est à dire si la syntaxe suivante est correcte...

Merci!

<?php

   // Les valeurs à afficher sur le graphique
   // Elles doivent être dans un tableau
	$values = array(1, 2, 3, 5, 2);
	$absc = array('btr', 'da', 'th', 'bi', 'Ne');
	$titre = 'mon titre à moi';
	


   echo "<img src='camembert1.php?titre=$titre&amp;absc=".urlencode(serialize($absc))."&amp;values=".urlencode(serialize($values))."' alt='Mon graphique'/>";
?>
1
Bonjour,
J'ai eu le même problème que toi la semaine dernière !
Je n'arrivais pas à passer les libellés associés à mes valeurs
pour le résoudre, j'ai passer les valeurs comme suit :

echo "<img src='../flyspray/scripts/camembert.php?values=".urlencode(serialize($values))."&titre=".$titre."' alt='.$titre.'/>";

puis, je les ai récupérés de cette manière :
$param = stripslashes(urldecode($_GET['values']));
$data = unserialize ($param);
0
Bonjour,
J'ai eu le même problème que toi la semaine dernière !
Je n'arrivais pas à passer les libellés associés à mes valeurs
pour le résoudre, j'ai passé les valeurs comme suit :

echo "<img src='../flyspray/scripts/camembert.php?values=".urlencode(serialize($values))."&titre=".$titre."' alt='.$titre.'/>";

puis, je les ai récupéré de cette manière :

$param = stripslashes(urldecode($_GET['values']));
$data = unserialize ($param);
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
g modifier 1 pe ton script essay le mnt ca marche tres bien





<?php

// Les valeurs à afficher sur le graphique
// Elles doivent être dans un tableau
$values = array(1, 2, 3, 5, 2);
$absc = array('born to run', 'darkness', 'the river', 'nebraska', 'BitUSA'); //libellé de légende
$titre = 'mon titre à moi';

//On récupère les valeurs à afficher sur le graphique dans $_GET['values'] et on les désérialize


// On vérifie que les données passées en GET sont correctes
if(is_array($values) === FALSE) {echo "out";
exit;
}

require_once('artichow-php5/Pie.class.php');

$graph = new Graph(750, 480);
// ... ajout d'une ombre portée...
$graph->shadow->setSize(4);

// ... et d'un joli fond.
$graph->setBackgroundGradient(
new LinearGradient(
new Color(240, 240, 240, 0),
new Red,
0
)
);

// Seules les valeurs numériques sont utilisées pour l'instant,
// avec le thème de couleur par défaut.
$pie = new Pie(array_values($values));
// Affiche les pourcentages avec une précision d'un dixième.
$pie->setLabelPrecision(1);

// Ajout de la légende
$pie->setLegend($absc);
// Repositionnement de la légende
$pie->legend->setPosition(1.45, 0.25);

// Décalage du camembert sur la gauche et vers le bas
$pie->setCenter(.36, .58);
// Redimensionnement du camembert, taille relative à l'objet Graph le contenant.
$pie->setSize(.65, .65);
// Ajout d'un petit effet 3D; la valeur est donnée en pixel.
$pie->set3D(5);

// Ajout d'un titre..
$pie->title->set($titre);
// ... repositionnement...
$pie->title->move(0, -40);
// ... et embellissement.
$pie->title->setFont(new TuffyBold(14));
$pie->title->setBackgroundColor(new White(50));
$pie->title->setPadding(5, 5, 2, 2);
$pie->title->border->setColor(new Black());

$graph->add($pie);

$graph->draw(); ?>
0