IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[ARTICHOW] Légendes et couleurs d'un graphe camembert


Sujet :

Langage PHP

  1. #1
    Débutant  
    Inscrit en
    Mai 2006
    Messages
    705
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 705
    Points : 117
    Points
    117
    Par défaut [ARTICHOW] Légendes et couleurs d'un graphe camembert
    Salut,
    Est ce qu'on peut insérer un élément de type array dans un champ de type text? sinon que dois-je faire?
    exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for ($n=$l; $n<$l+4;$n+=4) 
    		{
    			array_push($nom, $valeurs[$n]);
    		}
    ou $nom est de type array.....
    dans cette instruction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $plot = createPie(($nombres),$nom, $j, $k);
    => ce champs dans cette fonction doit avoir un champ texte...

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 600
    Points
    12 600
    Par défaut
    Bonjour,

    J'imagine que nom représente la légende de ton graphique.

    dans ce cas, cela risque d'afficher "array"

    quelque chose comme ceci, ne sera pas plus correcte pour toi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for ($n=$l; $n<$l+4;$n+=4) 
    		{
    			$nom.= $valeurs[$n]).'-';
    		}

  3. #3
    Débutant  
    Inscrit en
    Mai 2006
    Messages
    705
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 705
    Points : 117
    Points
    117
    Par défaut
    J'ai fait comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for ($m=$l; $m<$l+4;$m++)
    		{
    			$nom.= $valeurs[$n];
     
    		}
    		echo '(('.$nom.'))<br>';
    et le résultat était
    (())
    (())

    en signalant que $nom est initialisé à "";

  4. #4
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 240
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 240
    Points : 8 516
    Points
    8 516
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par L'aigle de Carthage Voir le message
    Salut,
    Est ce qu'on peut insérer un élément de type array dans un champ de type text? sinon que dois-je faire?
    exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for ($n=$l; $n<$l+4;$n+=4) 
    		{
    			array_push($nom, $valeurs[$n]);
    		}
    ou $nom est de type array.....
    dans cette instruction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $plot = createPie(($nombres),$nom, $j, $k);
    => ce champs dans cette fonction doit avoir un champ texte...
    Et bien non, par contre si $nom contient des éléments satisfaisant ton "champ de type text" alors tu peux en utiliser un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $plot = createPie(($nombres),$nom[$foo], $j, $k);
    http://www.php.net/types.array

  5. #5
    Débutant  
    Inscrit en
    Mai 2006
    Messages
    705
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 705
    Points : 117
    Points
    117
    Par défaut
    Alors que dois-je faire?
    Car en premier temps j'exécute cette requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $rep = mysql_query('SELECT Produit FROM produit where id=\''.$donnees['Id'].'\'')or die(mysql_error()); 
    		$nbrep = mysql_num_rows($rep);
    		  while($don=mysql_fetch_array($rep)) 
    				{ 
    				array_push($valeurs ,$don['Produit']); 
    				}
    puis je commence a extracté valeur par valeur et la mettre dans $nom pour l'affecter dans la fonction createPie:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     for ($n=$l; $n<$l+4;$n+=4) // Boucle de création des camemberts
    		{
    			array_push($nom, $valeurs[$n]);
    		}  
     
    			$plot = createPie(($nombres),$nom, $j, $k);
    			$graph->add($plot);
    Mais vu que les 2 types ne sont pas compatibles, je me suis coinçé...

  6. #6
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 240
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 240
    Points : 8 516
    Points
    8 516
    Billets dans le blog
    17
    Par défaut
    Désolé je ne peux pas t'aider car :
    - je ne sais pas ce que tu veux faire
    - je ne connaîs pas la fonction createPie( )

  7. #7
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 600
    Points
    12 600
    Par défaut
    Citation Envoyé par L'aigle de Carthage Voir le message
    J'ai fait comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for ($m=$l; $m<$l+4;$m++)
    		{
    			$nom.= $valeurs[$n];
     
    		}
    		echo '(('.$nom.'))<br>';
    et le résultat était
    (())
    (())

    en signalant que $nom est initialisé à "";
    Peut-être parce que ta boucle utilise $m et que dans $valeur tu utilise $n ?

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    229
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2008
    Messages : 229
    Points : 207
    Points
    207
    Par défaut
    Bonjour,

    A ce que je vois, tu as encore des problème avec Artichow. Puisque nous savons cela maintenant, pourquoi ne pas expliquer complètement ce que tu souhaite faire, même si j'en ai une bonne idée....

    Voilà.

  9. #9
    Débutant  
    Inscrit en
    Mai 2006
    Messages
    705
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 705
    Points : 117
    Points
    117
    Par défaut
    A ce que je vois, tu as encore des problème avec Artichow
    Oui, effectivement, car j'ai une fonction createPie($values, $title, $x, $y) qui prend comme paramètre un( array, une chaine, reel, reel)....
    et avant je faisais une faute en insérant un array dans la variable chaine , c'est pour cela, j'ai demandé de l'aide.... et c'est fait.

    Mais il me reste un petit problème dans la légende....
    Télécharger cette photo et tu comprendras mieux ma problématique http://rapidshare.com/files/113614408/question.jpg.html ...

    La vrai légende ne s'affiche pas, et je reçoit des nombres au lieu de
    $plot->setLegend(array('Vitesse', 'Ergonomie', 'Mémoire', 'Prix'));

    voiçi mon code PHP:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    function createPie($values, $title, $x, $y) {
     
        $plot = new Pie($values, PIE_EARTH);
        $plot->title->set($title);
        $plot->title->setFont(new TuffyBold(9));
        $plot->title->move(NULL, -12);
     
        $plot->label->setFont(new Tuffy(7));
        $plot->legend->hide(TRUE);
        $plot->setLabelPosition(5);
        $plot->setSize(0.35, 0.30);
        $plot->setCenter($x, $y);
        $plot->set3D(8);
        $plot->setBorderColor(new White);
     
        return $plot;
     
    }
     
    $graph = new Graph(450, 350);
    $j=0.25; 
    $k=0.25;
    $nbcam=$nb/4;
     
    $graph->setAntiAliasing(TRUE);
    /* for ($i=0; $i<$nbcam ; $i++)  // Boucle pour déterminer le nombre de camembert
    {  */
      for($l=0;$l<=($nb/$nbcam);$l+=4)// Boucle pour fixer le pas à 4 afin d'insérer les valeurs 4 par 4
      {
    		for ($m=$l; $m<$l+4;$m++) // Boucle d'insertion des array dans $nombres
    		{
    			array_push($nombres, $values[$m]);
     
    		}
     
    		 for ($n=$l; $n<$l+4;$n+=4) // Boucle d'insertion des noms des produits dans $nom		{
    			//array_push($nom, $valeurs[$n]);
    			$nom.= $valeurs[$n];
    		}  
     
    			$plot = createPie($nombres,$nom, $j, $k);
    			$graph->add($plot);
    			$j=$j+0.50;
     
    					if($j>1) 
    						{
    							$j=$j-0.5;
    							$k=0.65;	
    						}
     
    					if($k>1) 
    						{
    							$k=0.25;
    							$j=$j+0.50;	
    						}
     
    		for ($p=0; $p<$m;$p++) // Boucle de destruction de $nombres
    		{ 
    			unset($nombres[$p]);	
     
    		}  
     
     
    		$nom="";
     
    	}				
    //}
        $plot->legend->setModel(LEGEND_MODEL_BOTTOM);
    	$plot->setLegend(array('Vitesse', 'Ergonomie', 'Mémoire', 'Prix'));
    	$plot->legend->hide(FALSE); // We print only one legend
    	$plot->legend->setPosition(0, 1.10); 
    	$graph->add($plot);
     
     
    $graph->draw();
    ?>
    Pourrais tu me dire d'ou vien le pb?

  10. #10
    Débutant  
    Inscrit en
    Mai 2006
    Messages
    705
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 705
    Points : 117
    Points
    117
    Par défaut
    Bon j'ai enlevé le qui se trouve à la fin du code et l'affichage devient comme ça:
    http://rapidshare.com/files/113680608/question.jpg.html

    Si le lien de l'image ne fonctionne plus, dites-le...
    Que dois-je faire...
    Je veut que les 2camemberts ont les même couleur avec une unique légende dont laquelle s'est écrit:
    ('Vitesse', 'Ergonomie', 'Mémoire', 'Prix')....



  11. #11
    Débutant  
    Inscrit en
    Mai 2006
    Messages
    705
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 705
    Points : 117
    Points
    117
    Par défaut Petit problème dans l'ARTICHOW
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    Voiçi mon code: 
     
    $values = array(); 
    $valeurs = array(); 
    $nombres = array(); 
    //$nom = array(); 
    $nom = ""; 
    $m=0; 
    $p=0; 
    $s=0; 
     
    ////////////////////////////////////////////////////////// 
     
    $reponse = mysql_query('SELECT * FROM evaluation where version IN (select max(version) from evaluation GROUP BY id) ORDER BY id,id_critere ')or die(mysql_error()); 
    $nb = mysql_num_rows($reponse); 
    while($donnees=mysql_fetch_array($reponse)) 
    { 
    array_push($values ,$donnees['Note']); 
     
    $rep = mysql_query('SELECT Produit FROM produit where id=\''.$donnees['Id'].'\'')or die(mysql_error()); 
    $nbrep = mysql_num_rows($rep); 
    while($don=mysql_fetch_array($rep)) 
    { 
    array_push($valeurs ,$don['Produit']); 
    } 
     
    } 
     
    //////////////////////////////////////////////////////// 
    function createPie($values, $title, $x, $y) { 
     
    $plot = new Pie($values, PIE_EARTH); 
    $plot->title->set($title); 
    $plot->title->setFont(new TuffyBold(9)); 
    $plot->title->move(NULL, -12); 
     
    $plot->label->setFont(new Tuffy(7)); 
    $plot->legend->hide(TRUE); 
    $plot->setLabelPosition(5); 
    $plot->setSize(0.35, 0.30); 
    $plot->setCenter($x, $y); 
    $plot->set3D(8); 
    $plot->setBorderColor(new White); 
     
    return $plot; 
     
    } 
     
    $graph = new Graph(450, 350); 
    $j=0.25; 
    $k=0.25; 
    $nbcam=$nb/4; 
     
    $graph->setAntiAliasing(TRUE); 
    /* for ($i=0; $i<$nbcam ; $i++) // Boucle pour déterminer le nombre de camembert 
    { */ 
    for($l=0;$l<=($nb/$nbcam);$l+=4)// Boucle pour fixer le pas à 4 afin d'insérer les valeurs 4 par 4 
    { 
    for ($m=$l; $m<$l+4;$m++) // Boucle d'insertion des array dans $nombres 4 par 4 
    { 
    array_push($nombres, $values[$m]); 
     
    } 
     
    for ($n=$l; $n<$l+4;$n+=4) // Boucle d'insertion des noms des produits dans $nom 
    { 
    //array_push($nom, $valeurs[$n]); 
    $nom.= $valeurs[$n]; 
    } 
     
    $plot = createPie($nombres,$nom, $j, $k); 
    $graph->add($plot); 
    $j=$j+0.50; 
     
    if($j>1) 
    { 
    $j=$j-0.5; 
    $k=0.65; 
    } 
     
    if($k>1) 
    { 
    $k=0.25; 
    $j=$j+0.50; 
    } 
     
    for ($p=$l; $p<$l+4;$p++) // Boucle de destruction de $nombres 
    { 
    unset($nombres[$p]); 
     
    } 
     
     
    $nom=""; 
    /* for ($s=0; $s<$nbcam;$s++) // Boucle de destruction de $nom 
    { 
    unset($nom[$s]); 
    } */ 
     
    } 
    //} 
     
    $plot->legend->setModel(LEGEND_MODEL_BOTTOM); 
    $plot->setLegend(array('Vitesse', 'Ergonomie', 'Mémoire', 'Prix')); 
    $plot->legend->hide(FALSE); // We print only one legend 
    $plot->legend->setPosition(0, 1.10); 
    //$graph->add($plot); 
     
     
    $graph->draw(); 
    ?>
    et voiçi mon résultat:
    http://rapidshare.com/files/113680608/question.jpg.html
    Si le lien de l'image ne fonctionne plus, dites-le...
    Que dois-je faire...
    Mes 2 camemberts n'ont pas les mêmes couleurs et la légende est fausse
    Je veut que les 2camemberts ont les même couleur avec une unique légende dont laquelle s'est écrit:
    ('Vitesse', 'Ergonomie', 'Mémoire', 'Prix')....

    Qui possède une idée comment ça se résoud?
    Merci

Discussions similaires

  1. mettre une légende à une figure de plusieurs graphe
    Par berberat dans le forum Simulink
    Réponses: 3
    Dernier message: 29/11/2008, 15h27
  2. Réponses: 5
    Dernier message: 19/04/2008, 01h31
  3. Récupérer couleur par défaut graphe
    Par mthwt dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/08/2007, 21h53
  4. [ASP]OWC - Graphe Camembert
    Par Franck2mars dans le forum ASP
    Réponses: 2
    Dernier message: 13/02/2007, 09h11
  5. [Artichow] Légende sous Artichow
    Par kcizth dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 27/02/2006, 15h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo