Onde posso encontrar uma grande paleta / conjunto de cores contrastantes para colorir muitos conjuntos de dados em um gráfico?

83

Preciso de um conjunto grande (20 ou mais) de cores contrastadas e facilmente visualmente distinguíveis para colorir conjuntos de dados diferentes em um gráfico científico (o conjunto de cores não deve incluir branco ou preto e as cores devem ser o mais brilhantes possível).

A plotagem é gerada programaticamente e deve ser incluída em uma apresentação que será exibida usando um projetor.

Existem conjuntos de cores prontos para essa tarefa (eu preciso de cores como um conjunto de valores RGB)?

Ou talvez exista algum algoritmo que gere esse conjunto de cores programaticamente (eu uso o Wolfram Mathematica para geração de plotagem)?

PS O enredo em si pode parecer, por exemplo, semelhante a este:

captura de tela

Alexey Popkov
fonte
Como pano de fundo, por que eles realmente precisam ser distinguíveis?
e100
Eu quis dizer, por que os diferentes conjuntos de pontos de dados precisam ser distinguíveis?
e100
2
@ e100 Em outras palavras, as cores são usadas aqui para indicar a associação ao grupo.
Alexey Popkov 23/09

Respostas:

65

Graças ao ótimo trabalho

P. Green-Armytage (2010): Um alfabeto de cores e os limites do código de cores. // Cor: Design e Criatividade (5) (2010): 10, 1-23

(e ao usuário ohadsc que o referenciou !) agora conheço pelo menos três conjuntos de cores prontas de contraste máximo que contêm não menos de 20 cores (mas ainda tenho valores RBG explícitos apenas para uma delas):

1) O conjunto de 22 cores de contraste máximo proposto por Kenneth Kelly no trabalho:

K. Kelly (1965): Vinte e duas cores de contraste máximo. // Eng. Cor, 3 (6)

Informações específicas (citando P. Green-Armytage): "A ordem das cores na lista de Kelly foi planejada para que houvesse um contraste máximo entre as cores de um conjunto, se o número necessário de cores sempre fosse selecionado em ordem a partir do topo. <.. .> Kelly cuidou das necessidades das pessoas com visão de cores com defeito. As nove primeiras cores seriam maximamente diferentes para essas pessoas e também para as pessoas com visão normal. Essas nove cores também são facilmente distinguíveis pelo nome da cor ".

Informações adicionais (citando P. Green-Armytage): "O ISCC criou o Comitê de Projeto 54 com a intenção de atualizar o trabalho de Kelly. No entanto, o comitê decidiu que, pelo que estavam tentando fazer, não poderiam melhorar. Conjunto de cores de Kelly. "

2) O conjunto de 25 cores sugeridas por Robert e Ellen Carter no trabalho:

Robert C. Carter, Ellen C. Carter (1982): Conjuntos de cores de alto contraste. // Appl. Optics, 21 (1982) 2936-2939.

Detalhes (citando P. Green-Armytage): "Carter e Carter fazem referência ao trabalho de Kelly e verificam sua suposição de que a facilidade com que duas cores podem ser discriminadas depende de quão distantes as cores estão no espaço de cores. Dos espaços de cores disponíveis na época, eles escolheram o CIE L u v * como o mais apropriado para o estudo. <...> Eles descobriram que a capacidade das pessoas de identificar cores corretamente diminuía rapidamente quando a distância entre as cores era inferior a 40 unidades CIE L u v * ". Em seu trabalho, eles apresentam um conjunto de 25 cores separadas por pelo menos 51,6 unidades CIE L u v *.

3) O conjunto de 26 cores para o Projeto Alfabeto Colorido, sugerido por Paul Green-Armytage na obra citada "Um alfabeto colorido e os limites do código de cores". Este conjunto de cores foi projetado para uso com fundo branco. Trigêmeos RGB deste conjunto são: {240,163,255},{0,117,220},{153,63,0},{76,0,92},{25,25,25},{0,92,49},{43,206,72},{255,204,153},{128,128,128},{148,255,181},{143,124,0},{157,204,0},{194,0,136},{0,51,128},{255,164,5},{255,168,187},{66,102,0},{255,0,16},{94,241,242},{0,153,143},{224,255,102},{116,10,255},{153,0,0},{255,255,128},{255,255,0},{255,80,5}.

ATUALIZAÇÃO 1

4) Há outro excelente artigo sobre o assunto:

Zeileis, Hornik e Murrell (2009): Escapando RGBland: Selecionando Cores para Gráficos Estatísticos // Estatística Computacional e Análise de Dados Volume 53, Edição 9, 1 de julho de 2009, Páginas 3259-3270

Este artigo contém um belo conjunto de 26 cores distintas na página 11:

Conjunto de cores Zeileis, Hornik e Murrell 2009

Trigêmeos RGB deste conjunto são: {2,63,165},{125,135,185},{190,193,212},{214,188,192},{187,119,132},{142,6,59},{74,111,227},{133,149,225},{181,187,227},{230,175,185},{224,123,145},{211,63,106},{17,198,56},{141,213,147},{198,222,199},{234,211,198},{240,185,141},{239,151,8},{15,207,192},{156,222,214},{213,234,231},{243,225,235},{246,196,225},{247,156,212}.

ATUALIZAÇÃO 2

O usuário Tatarize sugere em seu blog :

5) Um conjunto de 64 cores maximamente diferentes :

Conjunto de 64 cores maximamente diferentes de Tatarize

6) Um dicionário de cores com 269 cores maximamente distintas de todas as cores anteriores (usei essa função para obter trigêmeos RGB a partir dos códigos hexadecimais):

Alfabeto colorido de Tatarize

Aqui estão os códigos hexadecimais da postagem do blog vinculada (lista completa de 269 códigos hexadecimais do alfabeto colorido de Tatarize, escondidos no histórico de alterações para facilitar a leitura).

7) 256 cores distintas .

ATUALIZAÇÃO 3

Aplicativos da web potencialmente úteis:

ATUALIZAÇÃO 4

8) Lista de 20 cores simples e distintas de Sasha Trubetskoy:

imagem

"Fiz uma lista de cores fácil de usar, otimizada em todas as mídias; não sem pequenos compromissos, é claro, como conversões CMYK inexatas. O principal problema é escolher cores" puras "(por exemplo, 100% magenta) ou seguras na Web leva a paletas de cores desajeitadas, perturbadoras e desequilibradas. Esta é a minha tentativa de uma paleta agradável que funcione bem para diagramas de rede ou de estilo de trânsito ou para dados categóricos ".

Alexey Popkov
fonte
1
Isso é bastante útil, Alexey. Obrigado! Gostaria de saber se você encontrou alguma coisa para 1. escalas de cores contínuas (gradientes) 2. escalas de cores ou conjuntos de cores que retêm contraste mesmo após a conversão em escala de cinza (um requisito nos periódicos da APS, por exemplo). graphicdesign.stackexchange.com/questions/7960/…
Szabolcs
Se alguém precisar, aqui estão os códigos hexadecimais das cores na mesma ordem em que estão na figura **** string privada [,] graphColors = {{"# 023FA5", "# 7D87B9", "# BEC1D4" , "# D6BCC0", "# BB7784", "# FFFFFF"}, {"# 4A6FE3", "# 8595E1", "# B5BBE3", "# E6AFB9", "# E07B91", "# D33F6A"}, { "# 11C638", "# 8DD593", "# C6DEC7", "# EAD3C6", "# F0B98D", "# EF9708"}, {"# 0FCFC0", "# 9CDED6", "# D5EAE7", "# F3E1EB "," # F6C4E1 "," # F79CD4 "},};
precisa saber é
Alguém tem o código hexadecimal para as cores na Atualização # 1?
Redshift
2
@redshift Eles são: "#023fa5", "#7d87b9", "#bec1d4", "#d6bcc0", "#bb7784", "#8e063b", "#4a6fe3", "#8595e1", "#b5bbe3", "#e6afb9", "#e07b91", "#d33f6a", "#11c638", "#8dd593", "#c6dec7", "#ead3c6", "#f0b98d", "#ef9708", "#0fcfc0", "#9cded6", "#d5eae7", "#f3e1eb", "#f6c4e1", "#f79cd4".
Alexey Popkov 23/02
para criar separados por vírgulas cordas hex daqueles, usar este oneliner pitão: print("'" + "', '". ...: join('#'+''.join(f'{int(c):02x}' for c in col.split(',')) for col in colors.strip('{}').split('},{')) + "'").
ovelha voadora
18

A combinação de "brilhante", "facilmente distinguível" e "20 e mais" é complicada. Lembra-me de "Nosso trabalho é rápido, barato e de alta qualidade. Escolha dois." Eu acho que você pode sair "brilhante" da mistura e apenas dizer "contrastado". Isso torna o resumo mais simples de alcançar, e acho que o levará aonde você quer estar.

Não conheço esse tipo de jogo de improviso, mas eis como eu faria isso usando o Photoshop:

  • Crie um documento em branco no modo de cor (RGB ou CMYK) que deseja usar. O RGB está correto para todas as impressoras de mesa e para exibição na tela ou projeção. Use CMYK apenas se você precisar de valores CMYK reais.

  • Escolha 5 cores básicas espalhadas uniformemente pela roda de cores. Na configuração Matiz, isso significa 0, 60, 120, 180, 240 e 300. Esses seriam seus pontos de partida. (Como alternativa, substitua as amostras padrão pelo conjunto de Windows ou Mac disponível no menu flutuante do painel Amostras e use o sétimo do último ao segundo do último.)

  • Para cada Matiz, selecione 5 ou 6 níveis de brilho e saturação que oferecem cores finais facilmente distinguíveis.

  • Ao encontrar cada um, adicione-o às suas amostras.

Se você estiver configurando esses dados para serem gerados de forma programática, basta escolher qualquer um dos valores adequados ao modelo de cores com o qual você estará lidando. Se você precisar usar o Illustrator ou o Flash para os pontos, adicione estas etapas:

  • Exclua todas as outras amostras (clique com a tecla Alt / Opt pressionada para remover) para que tudo o que resta seja o desejado.

  • Salve as amostras usando "Salvar amostras no Exchange ..." no menu desdobrável Amostras. Isso salva um arquivo .ASE que pode ser carregado no Illustrator, InDesign ou em qualquer outro aplicativo da Adobe.

Espero que ajude.

[Adição após pergunta expandida]

As cores base em hexadecimal são: 0xff0000 (vermelho puro), 0xffff00 (amarelo), 0x00ff00 (verde), 0x00ffff (ciano), 0x0000ff (azul) e 0xff00ff (magenta). Ao fazer algumas experiências, achei o amarelo puro muito próximo do branco demais para ser totalmente útil para seus propósitos, e o azul exigia um ponto de partida diferente porque é visualmente escuro. De cada cor de base, você pode fugir com 4 tons. Como você também pode usar o cinza, isso permite uma matriz 7x4 do que eu consideraria cores bastante úteis, dadas as suas restrições (e presumida falta de acesso ao Photoshop ou a um aplicativo semelhante). Pegue uma calculadora e derivar os valores decimais, se você precisar deles! :-)

  • Com exceção de amarelo, azul e cinza, seus pontos de partida são as cores puras. Reduza os valores hexadecimais de ff para b0, 87 e 55 para seus quatro tons.

  • Para azul, o "brilhante" é b0b0ff e os tons são 8484ff, 4949ff e 0000ff.

  • Para amarelo: e4e400, baba00, 878700 e 545400 funcionarão e, para os valores em cinza, faça com que os bytes de baixa ordem sejam iguais aos altos e médios em cada caso.

Meu gráfico rápido e sujo destes (menos os cinzas) é assim:

grade de cores

Alan Gilbertson
fonte
Corrigi minha pergunta: as cores devem ser contrastadas (e, na medida do possível, brilhantes). A plotagem é gerada programaticamente e preciso das cores como um conjunto de valores RGB. Obrigado.
Alexey Popkov
Veja a resposta expandida. Eu acho que isso o levará aonde você precisa.
Alan Gilbertson
2
Releia o parágrafo 2 da minha resposta. Você pediu valores RGB, não Munsell; você tem RGB. Eles funcionarão para seus propósitos, não há necessidade de usar todos eles, e eu lhe dei os detalhes de que você tem a flexibilidade de modificá-los. Os contribuidores do site não estão aqui para fazer seu trabalho por você (consulte as Perguntas frequentes).
Alan Gilbertson
2
Uma correção para os valores no comentário de @ neu242 (onde ciano e azul "se fundem" e que contém branco). Acho cores de Alan são: #ff0000 #b00000 #870000 #550000 #e4e400 #baba00 #878700 #545400 #00ff00 #00b000 #008700 #005500 #00ffff #00b0b0 #008787 #005555 #b0b0ff #8484ff #4949ff #0000ff #ff00ff #b000b0 #870087 #550055 #e4e4e4 #bababa #878787 #545454mas eu não seria necessariamente usá-los nessa ordem ...
MikeLimaOscar
2
... aqui estão eles novamente como triplos RGB, mas "transposta": {255,0,0}, {228,228,0}, {0,255,0}, {0,255,255}, {176,176,255}, {255,0,255}, {228,228,228}, {176,0,0}, {186,186,0}, {0,176,0}, {0,176,176}, {132,132,255}, {176,0,176}, {186,186,186}, {135,0,0}, {135,135,0}, {0,135,0}, {0,135,135}, {73,73,255}, {135,0,135}, {135,135,135}, {85,0,0}, {84,84,0}, {0,85,0}, {0,85,85}, {0,0,255}, {85,0,85}, {84,84,84}.
precisa saber é o seguinte
7

Uma boa abordagem é o esquema de cores Solarized de Ethan Schoonover.

A partir da descrição:

"Solarized é uma paleta de dezesseis cores (oito monótonos, oito cores de destaque) projetadas para uso em aplicações de terminais e GUI."

Eu acho que não é apenas um bom esquema de cores, mas também extensível e tem uma boa teoria por trás disso.

kaiser
fonte
6

Há uma falha fundamental e que está tentando traçar 20 coisas diferentes em um visual. Isso é muita confusão visual, e adicionar 20 cores só vai adicionar a essa confusão.

Eu consideraria repensar o visual geral, se puder. Talvez o segmente em 4 visuais de 5 cores cada, misture e combine sobreposições, etc.

O Tufte é o recurso essencial para aprender mais sobre a plotagem de dados das maneiras que melhor comunicam o objetivo:

http://www.edwardtufte.com/tufte/

DA01
fonte
3

Você pode tentar este seletor de cores. Ele foi projetado para mapas, mas também o usamos para tabelas e gráficos. Boa sorte!

http://colorbrewer2.org/

Max 12 cores embora. desculpa. :)

Dave
fonte