Skip to main content
Announcements
NEW: Seamless Public Data Sharing with Qlik's New Anonymous Access Capability: TELL ME MORE!
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Couleurs fixes pour graphique en secteurs

bonsoir

je découvre Qlik sense et suis vraiment impressionné.

je dispose d'une table dont un champ peut prendre 4 valeurs A,B,C,D

je souhaite réaliser un graphe en secteur avec en dimension ce champ et donc en mesure le nombre d'occurrence(count) de A,de B,de C,de D.

Jusque la ça va.

Mon PB :

je souhaite que le secteur de A soit toujours de couleur rouge, que B soit toujours jaune, que C soit toujours bleu, et que D soit toujours vert.

et ça je ne sais pas faire et je n'ai toujours pas trouvé la solution.

Quelqu'un a t il la solution ?

merci d'avance.

MH

1 Solution

Accepted Solutions
brunobertels
Master
Master

Bonjour

Sous Qlik Sense pour un graphique en secteur :

sélectionner couleur et légende / Par expression et rentrer cette mesure :

if(MonChamps='A',redlight(),

if(MonChamps='B',Yellow(),

if(MonChamps='C',blue(),

if(MonChamps='D',green()))))

A noter que tu peux utiliser la fonction rgb() pour adapter exactement ta teinte de couleur , avec les valeurs rouges vert bleue : rgb(255,50,120)

Bruno

View solution in original post

14 Replies
brunobertels
Master
Master

Bonjour

Sous Qlik Sense pour un graphique en secteur :

sélectionner couleur et légende / Par expression et rentrer cette mesure :

if(MonChamps='A',redlight(),

if(MonChamps='B',Yellow(),

if(MonChamps='C',blue(),

if(MonChamps='D',green()))))

A noter que tu peux utiliser la fonction rgb() pour adapter exactement ta teinte de couleur , avec les valeurs rouges vert bleue : rgb(255,50,120)

Bruno

Not applicable
Author

Merci pour la réponse qui répond à mon besoin.

je l'ai validée; maintenant pour aller plus loin j'ai essayé de remplacer les multiples IF par un switch /case .:

switch MonChamp

   case 'A'

      lightred();

   case 'B'

       yellow();

case 'C'

    blue();

  case 'D'

    green()

end switch

pour le moment ça ne marche pas, dommage .

Y a t il une raison ?

Merci encore pour l'aide.

martinien
Partner - Contributor III
Partner - Contributor III

Bonjour,

Le switch case ne fonctionne pas dans les expressions sur les feuilles , cette syntaxe est uniquement disponible dans le script.

Dans les expressions de graphiques, il faut passer par des if imbriqués

Martin

Not applicable
Author

ok merci, dommage.

le problème est que j'ai beaucoup de graphes à faire, alors je cherche à minimiser le nombre de fois où apparait le nom du champ.

maintenant que je commence à regarder les fonctions ; est ce pareil avec pick et match ?

Not applicable
Author

Bon en fait je viens de trouver une solution qui fonctionne dans le graph :

pick(Match(MonChamp,'A','B','C','D'),red(),yellow(),blue(),green())

le champ n'est donc qu'une fois, c'est nettement plus transportable

Not applicable
Author

encore une question pour simplifier  : est il possible de remplacer le nom du champ dimension par une expression ?

brunobertels
Master
Master

Bonjour

pick - fonction de script et fonction de graphique

match - fonction de script et fonction de graphique

Sinon pour simplifier tu peux utiliser des variables :

VmonchampColor =

if(MonChamps='A',redlight(),

if(MonChamps='B',Yellow(),

if(MonChamps='C',blue(),

if(MonChamps='D',green()))))

Ensuite dans les panneaux couleurs par expression : =$(VmonchampColor)

Avec ce principe en combinant avec valuelist il doit être possible de faire une seule mesure reprenant les différent code couleur suivant la dimension présente. :

voir ICI

enfin voici une autre approche pour laquelle j'ai fait ce post :

ICI

Bruno

Not applicable
Author

bon en fait je découvre qu'il y a plein de solutions:

mais encore une question basique, ce code :

VmonchampColor =

if(MonChamps='A',redlight(),

if(MonChamps='B',Yellow(),

if(MonChamps='C',blue(),

if(MonChamps='D',green()))))

Où dois je l'écrire ?

brunobertels
Master
Master

Re,

soit dans le script , soit dans l'éditeur de variable

1: dans le script :

SET VmonchampColor =

if(MonChamps='A',redlight(),

if(MonChamps='B',Yellow(),

if(MonChamps='C',blue(),

if(MonChamps='D',green()))))

2 Dans l'éditeur de variable :

bouton en bas a gauche dans QlikSense :

créer un nouvel élément :

puis dans le champ Nom : nommer la variable VmonchampColor

et dans le champs mesure , la mesure :

if(MonChamps='A',redlight(),

if(MonChamps='B',Yellow(),

if(MonChamps='C',blue(),

if(MonChamps='D',green()))))