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

  1. #1
    Membre habitué
    Fixer les couleurs d'une légende en fonction de la valeur
    Bonjour à tous,

    j'ai une difficulté pour la création de graphiques. Je m'explique : j'ai plusieurs pie chart qui représentent l'avancement (prévisionnel, en cours, terminé) des actions menées sur des territoires (un pie chart par territoire).

    Le problème est le suivant : il y a une couleur par avancement (rouge, orange, vert). J'ai beau fixer la valeur de la serie palette par pie chart, comme il n'y a pas toujours tous les niveaux par pie chart, les couleurs des portions varient entre les pie charts..... un coup c'est le niveau prévisionnel qui est en vert, un coup c'est le niveau en cours... cela dépend des données.

    Ca me pose un gros problème au niveau de la compréhension car cela oblige l'utilisateur à consulter la légende pour chaque pie chart.

    Comment faire pour fixer les couleurs de portions et de la légende en fonction de la valeur de l'avancement ?

    Merci pour vos suggestions
    La perfection n’est pas de ce monde. Ne sont parfaites que les intentions.
    Sagesse orientale.

  2. #2
    Membre éclairé
    J'ai vu passer ce cas dans le bugzilla d'Eclipse en tant que bug 165667. Il faut voter dans bugzilla pour faire remonter les fonctionnalités qui t'intéressent.

    Sinon il faut utiliser un script dans l'évènement beforeDrawDatapoint, comme dans cet exemple.

  3. #3
    Membre habitué
    Merci, je vais étudier ca.
    Est il possible de faire la même chose dans un histogramme ?
    La perfection n’est pas de ce monde. Ne sont parfaites que les intentions.
    Sagesse orientale.

  4. #4
    Membre éclairé
    Oui, par exemple je me suis déjà servi de ce type de script dans un histogramme pour mettre en surbrillance certains batons en fonction de leur valeur

  5. #5
    Membre habitué
    super merci ! je vais regarder ca.
    La perfection n’est pas de ce monde. Ne sont parfaites que les intentions.
    Sagesse orientale.

  6. #6
    Membre habitué
    Bonjour, j'ai utilisé l'exemple sur un pie chart, ca marche nickel mais pour un histogramme, ca ne marche pas...

    Voici le code :
    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
      function beforeDrawDataPoint( dph, fill, icsc )
    {
    	if( dph.getBaseDisplayValue() == "Prévisionnelle" ){
    		importPackage( Packages.org.eclipse.birt.chart.model.attribute.impl );
            fill.set(9, 170, 182);
    	}
    	if( dph.getBaseDisplayValue() == "Initiée" ){
    		importPackage( Packages.org.eclipse.birt.chart.model.attribute.impl );
            fill.set(121, 181, 28);
    	}
    	if( dph.getBaseDisplayValue() == "Engagée" ){
    		importPackage( Packages.org.eclipse.birt.chart.model.attribute.impl );
            fill.set(232, 91, 129);
    	}
    	if( dph.getBaseDisplayValue() == "Terminée" ){
    		importPackage( Packages.org.eclipse.birt.chart.model.attribute.impl );
            fill.set(238, 127, 1);
    	}
    }


    sachant que "avancement" est le "Optional Y Series Grouping" et que je veux fixer la couleur selon l'avancement.
    La perfection n’est pas de ce monde. Ne sont parfaites que les intentions.
    Sagesse orientale.

  7. #7
    Membre éclairé
    Ah pour affecter la couleur des "optional Y series" je ne sais pas comment faire, perso je n'ai changé la couleur que pour l'axe X

  8. #8
    Membre habitué
    je viens de trouver en fait. Il faut utiliser getSeriesDisplayValue() avec un contains
    La perfection n’est pas de ce monde. Ne sont parfaites que les intentions.
    Sagesse orientale.

  9. #9
    Membre à l'essai
    Fixer les couleurs d'une légende en fonction de la categorie
    Citation Envoyé par Juwan Voir le message
    je viens de trouver en fait. Il faut utiliser getSeriesDisplayValue() avec un contains
    Bonjour,

    Merci pour les explications pour ce sujet.
    Cependant ou faut-il mettre le code

    function beforeDrawDataPoint( dph, fill, icsc )
    {
    if( dph.getBaseDisplayValue() == "Prévisionnelle" ){
    importPackage( Packages.org.eclipse.birt.chart.model.attribute.impl );
    fill.set(9, 170, 182);
    }
    if( dph.getBaseDisplayValue() == "Initiée" ){
    importPackage( Packages.org.eclipse.birt.chart.model.attribute.impl );
    fill.set(121, 181, 28);
    }
    if( dph.getBaseDisplayValue() == "Engagée" ){
    importPackage( Packages.org.eclipse.birt.chart.model.attribute.impl );
    fill.set(232, 91, 129);
    }
    if( dph.getBaseDisplayValue() == "Terminée" ){
    importPackage( Packages.org.eclipse.birt.chart.model.attribute.impl );
    fill.set(238, 127, 1);
    }
    }

    et ou trouver le getSeriesDisplayValue()
    Merci

###raw>template_hook.ano_emploi###