17

Here are at least 15 colors by name which are easily recognizable:

white
brown
black
red
orange
yellow
gold
green
blue
purple
pink
turquoise
sea-green
tan

I need 32 distinct colors, as I am going to map each color to a letter in a fantasy alphabet I am making up. Maybe picking 32 unique unrelated colors is too hard for humans to distinguish, maybe there are like 16 colors, but 2 shades to each one, or something like that. What would be a good way of having 32 highly distinguishing colors so if you were given a test (a non-color-blind person) of each color in isolation, you could tell what it was? Basically "absolute pitch" but for colors.

I was thinking of having 32 unique colors, but maybe having shades of a smaller set (4 shades of 8 colors, or 2 shades of 16) might be better. From a design perspective though, like if you were coloring in the 50 US states with different colors, how would you break apart the colors so they could be easily distinguishable and also named and you could tell the color in relation to the 32 or by itself?

I guess one answer would be if you knew of research outlining 32 colors or something along those lines. But otherwise how would you break this up?

10
  • 1
    I would investigate in the CIELAB color space, see this for example, the results are interesting. I also suggest to read this and this. Commented Oct 4, 2022 at 8:42
  • 2
    Does this answer your question? Where can I find a large palette / set of contrasting colors for coloring many datasets on a plot?
    – r3mainer
    Commented Oct 4, 2022 at 10:54
  • Perhaps you could introduce some additional "binary" attribute along the lines of the 26 letters of the alphabet being easily doubled simply by introducing upper case and lower case versions. With 16 easily-differentiated "basic" colours, perhaps glossy / shiny and matt / dull. I assume you only have to differentiate the full range in text (I doubt if it's possible for everyone to reliably identify every member of any set of 32 colours). Commented Oct 5, 2022 at 16:11
  • 1
    This and this are related
    – martin
    Commented Oct 5, 2022 at 18:28
  • 1
    @LamarLatrell the closest we have is Lab but it has a wierd shape and its not really uniform since human vision is odd. so things that are further in the space appear closer and closer things further at all locations of the space. The problem is the word space that makes you do all kinds of wierd things that ought to work but dont really. it just has prooerties that make linearisation problematic.
    – joojaa
    Commented Oct 7, 2022 at 4:45

10 Answers 10

22

As mentioned by other folks, 32 colours that can be reliably identified in isolation is going to be a struggle. However, Sasha Trubetskoy has come up with a list of 22 that might fit the bill:

enter image description here

Mapping those to the English alphabet would get you as far as V, but there's arguably a lot of redundancy in that alphabet. For example, before the letter U was added to the Latin alphabet, V was used to represent both U and V, with the reader left to deduce the correct interpretation from context. I and J are another example, made famous by the "Name of God" trap from Indiana Jones.

With some liberal application of these allographs, perhaps you can whittle down the number of required colours enough to use these 22. In this example I've grouped enough letters to leave black, grey & white free for use as the background.

enter image description here

Admittedly, it gets a little confusing when you happen to have a double allograph, as you can tell from trying to decode the sentence above...

6
  • 2
    I think it should be possible to extend it to 26 distinct colors. For example, add "Anthracite", "Coral", "Eggshell" (or maybe call it cream) and "Tan" (alternative name: buff), or "Mustard". I think they have the quality such that, if you show people the pair of red and coral, pretty much everybody will agree which one should be considered "red" and which one "coral", and even, when you pick a suitable (non-corally) red, a significant proportion should be able to look at the red only and be reasonably certain it isn't the coral, ditto for the other three and their closest neighbour.
    – rumtscho
    Commented Oct 5, 2022 at 10:37
  • It depends on what "isolation" means--if you showed me the swatch of, say, mint and asked me what color it was, I would for sure say green...but also green if you showed me the lime or green swatches. Commented Oct 6, 2022 at 16:13
  • Heh. I followed the link to the 22-colors page -- but with my laptop in "night mode", my blue channel is attenuated, and several pairs of colors are nearly indistinguishable. A person examining a printed map in candlelight instead of daylight would have the same issue.
    – jeffB
    Commented Oct 7, 2022 at 3:30
  • When I said "in isolation", I was thinking that a person familiar with the colour 'alphabet' would be able to reliably label any of the colours without having to compare it to any other. The 3 greens in my answer are probably the trickiest to do this with, but I think they're different enough to pass that test (in good light of course, @jeffB !) Commented Oct 10, 2022 at 8:45
  • @PangolinPaw it might seem so, but human vision is highly adaptive, usually at an unconscious level. Even if you've memorized the list and have a great eye, your visual cortex will betray you. (And in addition to "good light", you'd need pigments or inks and canvas that are all completely color-stable, even under strong light -- a tall order for current technology!)
    – jeffB
    Commented Oct 10, 2022 at 15:06
11

It will be difficult to come up with 32 distinguishable colors. Even your list of 15 colors has some that are more shades or tints of others on the list. Here are 32 colors (or rather 8 with tints of 100%, 75%, 50%, and 25%). These would not be easily identifiable if viewed separate from each other. To have 32 that can be recognized when separate from each other will be hard.

enter image description here

For the 32 different characters you are creating it seems to me the main criteria would be that they are easily distinguishable from each other. I know you asked about separate individual colors but perhaps some of your alphabet could have combined colors or combined colors at different angles which would be easily recognizable.

enter image description here

Add to this example more with different color variations and you can come up with unique recognizable color glyphs to represent your alphabet. Whatever method you choose to represent this people will still have to learn your scheme of 32 different things to be able to use your fantasy language.

3
  • 1
    My colour vision is bad enough to cause me problems. I can't tell any of the colour pairs at the same % level in the centre two columns apart, and the 50% and 25% reds and greens are also indistinguishable. Commented Oct 4, 2022 at 14:41
  • Just to stress that what @JohnDallman says is important: roughly 1 in 10 men is color blind (less so in women). If you target any audience it is basically guaranteed that there are color blind persons in there. If you want to make sure that you do not exclude color blind people you can run your palette through a color blindness simulator (like this one: color-blindness.com/coblis-color-blindness-simulator).
    – fho
    Commented Oct 6, 2022 at 13:42
  • 1
    I'm not color blind, but even I can't tell those yellows apart. Except maybe the bottom one, but likely not in isolation. Commented Oct 6, 2022 at 17:10
9

I happen to have an application where I need precisely this—32 distinct colors used for plotting signals from up to 32 different sensor channels. As the other answers have noted, there is, unfortunately, no good way to do this. You can certainly choose 32 colors that are distinct from each other, but, with such a large color palette, it's inevitably going to be difficult for a human to visually distinguish between certain colors (and that's leaving aside various types of colorblindness).

Therefore, do heed the advice given in the other answers about considering ways to reduce the number of distinct colors needed, finding other ways of visually indicating difference (e.g., line stippling patterns), and/or using other glyphs. In other words, solve the problem by avoiding it. :-)

But, if you absolutely do need this, here is the best I've been able to come up with. This is a 32-color palette, carefully hand-tweaked to maximize the perceptual distance between each of the colors. Each color is given in RGB notation, one color per line.

173, 216, 230   
  0, 191, 255   
 30, 144, 255   
  0,   0, 255   
  0,   0, 139   
 72,  61, 139   
123, 104, 238   
138,  43, 226   
128,   0, 128   
218, 112, 214   
255,   0, 255   
255,  20, 147   
176,  48,  96   
220,  20,  60   
240, 128, 128   
255,  69,   0   
255, 165,   0   
244, 164,  96   
240, 230, 140   
128, 128,   0   
139,  69,  19   
255, 255,   0   
154, 205,  50   
124, 252,   0   
144, 238, 144   
143, 188, 143   
 34, 139,  34   
  0, 255, 127   
  0, 255, 255   
  0, 139, 139   
128, 128, 128   
255, 255, 255    <-- white or black

For the last color in the list, I use either white or black, whichever is the opposite of the background color. For what it's worth, I personally find that the colors are easier to distinguish from each other against a black background than a white background, but your mileage may vary.

Here are some visual examples:

8×4 color palette, with white as the last color.

8×4 color palette, with black as the last color.

Yes, some of those colors are still very hard to distinguish from others. I'd love to hear if someone can improve upon this. In my application, the colors at least narrow down the set of possibilities to <= 3, which can then be discriminated between in other ways.

Finally, for reference, below is the (hastily-written and very hacky) MATLAB code used to generate the example palettes above:

COLOR_PALETTE     = [                ...
                      173, 216, 230; ...
                        0, 191, 255; ...
                       30, 144, 255; ...
                        0,   0, 255; ...
                        0,   0, 139; ...
                       72,  61, 139; ...
                      123, 104, 238; ...
                      138,  43, 226; ...
                      128,   0, 128; ...
                      218, 112, 214; ...
                      255,   0, 255; ...
                      255,  20, 147; ...
                      176,  48,  96; ...
                      220,  20,  60; ...
                      240, 128, 128; ...
                      255,  69,   0; ...
                      255, 165,   0; ...
                      244, 164,  96; ...
                      240, 230, 140; ...
                      128, 128,   0; ...
                      139,  69,  19; ...
                      255, 255,   0; ...
                      154, 205,  50; ...
                      124, 252,   0; ...
                      144, 238, 144; ...
                      143, 188, 143; ...
                       34, 139,  34; ...
                        0, 255, 127; ...
                        0, 255, 255; ...
                        0, 139, 139; ...
                      128, 128, 128; ...
                      255, 255, 255; ... % white (or black)
                   ] * (1 / 255);

data       = zeros(4, 8);
data(1, :) = (1 : 8);
data(2, :) = (9 : 16);
data(3, :) = (17 : 24);
data(4, :) = (25 : 32);

image(data);
colormap(COLOR_PALETTE);
set(gca, 'xtick', [], 'ytick', []);
4

It is probably impossible to have 32 distinct colours in the manner you describe. I have a program which attempts to split colours into a set of x colours so that each is different from the others based on distance in the CIELAB colour space, and this is what I get when I ask for a set of 32 colours:

32 different colours

I would have trouble distinguishing many of these, particularly the last two.

16 is a more realistic limit for unique colours:

enter image description here

Even 16 could be difficult, the CIELAB colour space has some notably odd properties, and I think the set of 16 above could be improved on.

5
  • The red and orange are almost indistinguishable on my laptop screen.
    – Neil_UK
    Commented Oct 5, 2022 at 11:13
  • 1
    Yes, these sets could definitely be improved by hand tweaking. My program is an experiment limited to commonly occurring colours, and then trying to derive 6 or 7 basic colour terms from them. I thought I’d try running it with 16 and 32 colours in response to this question. It would probably also give better results for this purpose if I included rarer purples and turqoises to the candidate colours. Commented Oct 5, 2022 at 11:35
  • 1
    @TimothyMaguire could I ask what program it is please?
    – martin
    Commented Oct 5, 2022 at 18:30
  • It's a program I wrote implementing the algorithm from the paper "Color naming reflects optimal partitions of color space", but instead of using the colour chips of the WCS stimulus array, I am using a set of colour chips spread evenly through CIELAB space. The set of colour chips contains colours which occurred commonly in a set of images of the natural environment I used in this paper pre-print: researchgate.net/publication/… Commented Oct 6, 2022 at 10:45
  • From each partition of the set of colours I then select the chip which is most dissimilar to colours in other partitions. That is then the representative colour of that partition, which will be on the outside edge of the candidate colours in most cases. Commented Oct 6, 2022 at 10:48
3

Look at maps produced when printing technology was simpler, and you'll see there are ways of making a single color do multiple duties, by adding dots, dashes, other symbols and and hash lines. Therefore, you can get at least four distinct shading patters from a color such as yellow -- plain, dotted, dashed, and diagonal hash lines. You can get even more with vertical hashing, horizontal hashing, stars, and so on.

1

Think of colors in terms of HUE, SATURATION and BRIGHTNESS, The same HUE (color) looks quite different if it's saturation and brightness has marginal difference.

I usually use Adobe Illustrator's Recolor Artwork Tool to create all sorts of contrasting or harmonized color combinations.

1

Wave from programming department!

Just a note.

In certain cases when developing for either phones, tablets or laptops, you achieve "32 colors" (well, "N colors") in the following way:

  1. your design department tells you the exact saturation and brightness they want in the palette.

  2. you then create the colors (I mean, you write code to create the colors), whether 5, 10, 32 or 100, using that exact saturation and brightness, and RedBarButtons.

Hence it literally looks like this:

enter image description here

In the example, my design gang wants 10 colors. So the mysteryNumber would literally just be

0, .1, .2, .3, .4, .5, .6, .7, .8, .9

(Recall 1 is the same as 0.)

You can see that if 20 colors, then it would be

0, .05, .10, .15, etc ...

In fact, for any number, say 32, the formula is simply i/32.

When design dept. needs say "50 different colors" this is one common approach. They look really cool since they are a logical slice of the color wheel.

Very naive programmers will just pick completely random r g and b values - which is why they are naive. If you have programmers like that - fire them! :)

Indeed I've had designers tell me other "slices" of the color cube which I've programmed up for them, to beautiful result.

Note that by no means does this account for color-blind users, nor is it meant to be "as distinct seeming as possible" as per the other excellent answers.

I'm just pointing out this common situation.

Note that once you get to large numbers, say 50, there simply are no sets of 50 "distinct to humans" colors. Indeed, as experts have said on here, you're pushing the limit with anything above 20.

So, in some cases, above say 20, you may give up and have a "mathematical" solution. The important trick being that you take one slice of the color cube. (And have your programmer do the work! :) )

Hope it's relevant.

2
  • I dont think its so much about finding colors that a person could discern. But rather that the goal is not to have colors but solve some problem with the colors. The reality is that fixation on one color each colors will most likely make the thing just excessively confusing. There are lot of other ways to solve the problem and one should explore those instead. Color just seems like the easiest solution.
    – joojaa
    Commented Oct 6, 2022 at 15:29
  • 1
    For sure, @joojaa , I was just adding some more info!
    – Fattie
    Commented Oct 6, 2022 at 15:57
1

32 or even 22 colors is too ambitious in the face of lighting variations. "Brown is dark orange."

Colors that are completely distinct in daylight will be nearly indistinguishable in candlelight.

A color with low saturation will be more apparent in bright light of any color temperature than in dim light of the same color temperature.

Two colors that are easily distinguished when adjacent will be hard to identify when matching a legend swatch to a feature on the other side of the map.

Colin Ware's excellent Information Visualization: Perception for Design states (citing various studies as evidence) that 10 or 11 distinguishable colors is the best you can hope for, even with uniform lighting. I'm inclined to agree. If you need to distinguish more things, add texture or patterning. (Or motion or blinking, depending on your technology.)

2
  • 1
    +1 You might want to add a footnote for your reference to make the answer a bit more authoritative.
    – joojaa
    Commented Oct 7, 2022 at 5:43
  • @joojaa I added detail specifying the text. I shouldn't give a page number, as my copy is the first edition, and I see he's up to a fourth edition now.
    – jeffB
    Commented Oct 7, 2022 at 15:16
0

Print media options

The question doesn’t specify the media, and other answers assume display on a monitor. If print media is relevant, than there are many color options that can’t be defined systematically.

Spot colors

Inks can have distinctive properties like glitter, fluorescence, glow-in-the-dark, and gloss.

Discrete materials

Vinyl, card stock, leather, fabric, sheet metal, acrylic, wood, glass etc. can be cut to the shape of each state. If the materials are all familiar, then they’ll be easy to distinguish.

0

This is something I have to deal with currently when doing a flavour of CAD work (measuring flooring areas from architect's plans and assigning them to different types of carpet, laminate, tiles etc to cost up installations, keeping them distinct with different colours, in a program that can apply patterns to them but only has rubbish patterns, and over diagrams that often have their own patterning anyway). Simpler jobs you can just use primaries, or at least pastel versions of such to keep things readable, but others can have two dozen or more different materials on the go. And they have to be distinct enough that you can both tell things apart when the two most similar colours are next to each other, but also in isolation without having to continually refer to the key.

Doing a quick bar-mat mapping out of the colour set I start with and common variations, plus a couple extras that wouldn't work for me but you could use, I get to 30 pretty easily - essentially full saturation full brightness (primary), light/pastel, and dark variations of the following:

Red, Orange, Yellow, Green, Cyan, Sky-Blue (or Cobalt), Navy-Blue (or Indigo), Purple, Magenta, Grey. (Grey becoming White and Black with the variations)

Some of them may not be as great when modified as the change in brightness does affect hue perception slightly, but there are other twiddles that can be used to compensate for this and reach the full 32. For a start, it's clear from Windows that light and dark grey can be sufficiently distinct from each other and from full black/white. Might even be able to have dark, mid and light grey?

Also, green can be split to a more lime and a more sea-green variant without getting too confused with each other and with yellow/cyan, but that's maybe only reliable for the full saturation, full brightness variation. Similarly Red to a more scarlet and more brick colour, if the orange is pushed more towards amber and the magenta made just slightly purple (those are essentially adding a modicum of one or other additional primary to the main one, same as the sky/purple variants of navy blue but needing a greater proportion because of the greater inherent brightness of red and especially green vs blue).

Besides that, you can keep the mid brightness and reduce the saturation to have more greyish tones, or even just tinted greys. Also maybe use a small set of distinct human skintones too, and/or hair colours, we seem to be well tuned to see minor differences in those (maybe too much...) even though they're all really just brightness/saturation (and slight hue) variations on a theme of reddish-orange.

I don't think you would be able to push this to 64, or even 48, but 32 should be entirely doable. Just look at crayola multipacks :)

This of course would require good lighting conditions in a real-life or story universe setting - plenty of lumens and good CRI, without glare - vs on-screen display or regular ink printing. But if that's where it's happening, as others have already said, you can have further distinctions beyond that... glitter/speckling, matt texture vs shiny (consider the clear difference between dull metal and polished), fluorescence (highlighter pens vs regular ones, even without true internal luminance), iridescence, flip-paint effects, all the different colourful appearances of particular types of gemstone... etc. Many things that can't be depicted on-screen without active animation (or at all), or with mundane printing. You could easily get to 64 or more that way, picking just 32 out of them would be the challenge.

edit: not sure if the comment I added with an imgur link is actually showing up, but I threw together a quick set of swatches partially for my own use off the back of this - 41 unique colours ... could be extended and improved a bit further, but you should be able to make something from this for your own project. The last few include some pairs that would replace earlier singles (or triplets replacing pairs) rather than being usable alongside them but there's still high 30s should you do that, and more than 32 without. Didn't put in any of the grey tints / desaturated colours or skin tones for a start. And working in flooring I can tell you there's a lot of variations on the concept of "beige" that a trained eye starts to be able to detect :-)

Also, considering all the difficulties mentioned with this method of constructing a cipher or even an entire language... that could be an actual story point if it's being put together for use in a work of fiction, tabletop RPG, etc. In order to read it properly you'd need to have full colour vision and a decent light source (or, a way of making it light up, if it's internally luminescent or has translucency), and maybe "foreigners" who aren't used to it would have trouble picking up on subtle variations that seem distinct and obvious to a native reader (or someone familiar with the secret code, if that's what it is). It's not like regular writing doesn't have its own drawbacks for various situations (darkness) and people (short/longsightedness, dyslexia, etc) as well as idiosyncracies (letters that are easily confused, or that look similar to numbers, upper/lower case for no real reason, silent letters and all the various weirdness in how English is written, accents/diacritics, punctuation... just as a start) and this may even have advantages over it in some cases if you get creative. Arranging it so similar colours use similar sounds and/or adjacent letters/syllabics in the alphabet, making poetry from pictures, changing meanings if viewed in different light (including blacklight for fluorescents) or with a tinted translucent filter, etc. The nature of it doesn't necessarily have to be all drawbacks.

NB maybe some of the extra colours would be useful for punctuation (even if just spaces... ie whatever the background colour is... of course you'd need to set a standard one otherwise that could cause all kinds of havoc with having to swap out whatever letter colour you're writing on top of... maybe a bit like "mutations" in Welsh even?), or numbers, or even as shift-characters - see for example how Baudot code fits 62 unique codons into a 5-bit, thus 32 "character" code space... or that could be done with shaping of the swatches etc?

7
  • In fact, I could do with an easy-pick palette for my own uses, so I've whizzed this up. Could add a few more besides (the non-pastel desaturated/grey tints for example, and skintones) if I extended the size of the image, but I just stopped when I ran out of space. It's sort of at the point where some pairs at the end would replace single colours further up instead of working alongside them, etc. But there's easily 32 distinct ones there, and this is quick & dirty so could improve. - - As I'm anon-posting I can't attach anything, but I uploaded it over to Imgur: imgur.com/a/wxKTd17
    – Tahrey
    Commented Oct 5, 2022 at 11:17
  • Also (assuming this actually appears), I'd say all of those can be described in simple terms just from looking at them. EG, "pale red", or "dark sky"/"dark cobalt", "pure yellow", "coffee brown"... or just "white". Mostly one or two words, occasionally three. Very simple, so it can be communicated in text or spoken word as well as as actual visuals. - - - - (The bottom row would be coffee, lime, malachite, brick, amber, scarlet, purple - if the existing "purple" becomes "violet" instead, or it could be a redesignated "magenta" still - and beige/magnolia...)
    – Tahrey
    Commented Oct 5, 2022 at 11:33
  • i think that first on second row and second last on last row is are bit too close to eachother.
    – joojaa
    Commented Oct 5, 2022 at 11:39
  • That's one of the ones which would be a replacement, rather than used together. In that case you'd take that, the two to the left, and the one to the right, and use those four in place of the existing three of orange, red, and magenta (IE first two at top left, and first of second row). If I meant that the two you mention together I'd have made them more distinct from each other :-)
    – Tahrey
    Commented Oct 5, 2022 at 11:52
  • Also another thought for the fictional space: Tetrachromats! Like I think my mum might be one IRL (they exist and are more likely to be female) and she can distinguish between items of clothing/etc that I see as all the same as each other, even though I have otherwise normal trichromat vision. Different kinds of blue that seem like the same flavour of navy, particularly, or even seeing blue in something I think is as black as its neighbour. Base a colour cipher on that within a group who have that extra colour sense and normies are as handicapped as the "colourblind" are with RGB based codes.
    – Tahrey
    Commented Oct 5, 2022 at 11:55

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.