Skip to main content

New to Qlik Sense

If you’re new to Qlik Sense, start with this Discussion Board and get up-to-speed quickly.

Announcements
Welcome to Qlik Community! Check out our new navigation! FIND OUT MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
reivax31
Partner - Creator III
Partner - Creator III

Color by dimension value

Hi Qlikers,

Is there a way seletc a specific color for a dimension value ?

Let say I have a dimension 'Country' with values like 'UK, Italie, Spain, etc...I know that in a chart I can put color by expression like : if(Country='UK',green(),if(Country='Spain',blue(), etc...

The thing is that my dimension can change using a variable extension. So if my dimension changes to 'City' the color conditions wil not work anymore...

Is there a way in the script to set a specific color for each dimension values?

Or to load a table with color assigned for each dimension value?

Or something else?

Thanks for your help!

1 Solution

Accepted Solutions
brunobertels
Specialist III
Specialist III

Hi Xavier

It seems you use variable and variable extension to change the dimension in your graph or table

for exemple vDimGEO with value 1 for country and value 2 for city.

so try in the color panel menu this mesure ( to adapt to your requierment)

pick(match($(vDimGEO),1,2),if(Country='UK',green(),if(Country='Spain',blue())),if(City='London',lightgreen(),if(City='Barcelone',lightblue())))

easy if your number of country and city is low

If you have a lot of country and city another approch would be better as you mentionned a table with distinct colors attached to each value of countries and cities.

Hope it helps otherwise

Regards

Bruno

View solution in original post

8 Replies
marcus_sommer
MVP & Luminary
MVP & Luminary

Within QlikView you could do it in this way: Colors in charts. If this could be used respectively adpated in Qlik Sense I don't know - maybe this is helpful as starting point: Qlik Sense: How to set custom colors by measure in a bar chart

- Marcus

brunobertels
Specialist III
Specialist III

Hi Xavier

It seems you use variable and variable extension to change the dimension in your graph or table

for exemple vDimGEO with value 1 for country and value 2 for city.

so try in the color panel menu this mesure ( to adapt to your requierment)

pick(match($(vDimGEO),1,2),if(Country='UK',green(),if(Country='Spain',blue())),if(City='London',lightgreen(),if(City='Barcelone',lightblue())))

easy if your number of country and city is low

If you have a lot of country and city another approch would be better as you mentionned a table with distinct colors attached to each value of countries and cities.

Hope it helps otherwise

Regards

Bruno

reivax31
Partner - Creator III
Partner - Creator III
Author

Wonderful,

This works perfectly. You are right this is very usefull if the dimensions have a few values. So I have set the colors for the dimensions that have lest than 10 possible values. And I would like for the other dimensions to let Qlik choose the colors. But in the expression if I do not set a specific color for each value than the value not specified are set in a light grey. Is there a function to call the standard color from Qlik?

Or, how does it work to define color by loading a table? because this could be very usefull anyway for me in the futur. I did a few trails but it doesn't work... I looked if there was already a topic on this but I found nothing...

Thanks again for your help

brunobertels
Specialist III
Specialist III

Hi

Glad to read it works.

"Is there a function to call the standard color from Qlik?" :

No rather than you use default setting colors , or color defining by expression but not twice as the same time.

Or, how does it work to define color by loading a table? : never use this possibility but i'am sure i'had read a post about this. let me chek

bruno

brunobertels
Specialist III
Specialist III

Hi

Don't find the post about this but see attached qvf example with excel data

the trick is to create a table with red green blue field and value for each basic RGB color and field for country and the same table but with cities ( in my example i took 4 frenchs departement and some towns)

Then in your bar chart you have a variable to jump from departement or cities dimension with this mesure as dimension :

pick(match($(vdimgeo),0,1),Ville,Departement)

you add this in your script for each color table :

[dept_color]:

LOAD [Departement],

    rgb("Red","Green","blue") as color_dept

FROM [lib://Desktop/testcolor.xlsx]

(ooxml, embedded labels, table is dept_color);

and for cities :

[town_color]:

LOAD [Ville],

    rgb("Red","Green","blue") as color_ville

FROM [lib://Desktop/testcolor.xlsx]

(ooxml, embedded labels, table is town_color);

and in the color panel add this mesure :

pick(match($(vdimgeo),0,1),color_ville,color_dept)

and that's ok

Bruno

reivax31
Partner - Creator III
Partner - Creator III
Author

Perfect ! Perfect !

Thanks a lot for your great help

abhalla2
Contributor II
Contributor II

There is an efficient way of doing this, just create a new master Dimension, add your dimension and then within the same window switch to 'Value Colors' tab, select the value and the required color and you're done :). no need to write complex codes. hope this would help!

deepti_singh
Creator II
Creator II

Thanks Bruno. This is exactly what I was looking for.