web-dev-qa-db-fra.com

Combien de couleurs visuellement distinctes peuvent être associées avec précision à une légende séparée dans une figure?

Pour les tableaux et les graphiques, les programmeurs ont une question relativement courante de vouloir générer de manière procédurale un nombre arbitraire de couleurs visuellement distinctes.

Il existe diverses recherches (ou suppositions éclairées) qui disent que le nombre de couleurs que les humains peuvent différencier se situe entre 200 000 et 20 millions. Évidemment, cela varie dans une certaine mesure selon la personne (et la présence ou le degré de daltonisme). Cependant, cela est basé sur le fait qu'un humain puisse ou non distinguer deux couleurs côte à côte; cela est distinct du souci de placer deux boîtes à l'écran avec des couleurs très similaires, de répéter ces couleurs dans une légende quelque part et de déterminer si un humain peut déterminer quelle couleur va avec quelle boîte.

J'ai fait le mieninvestigationsdans ceci et j'ai trouvé ne page pour générer un ensemble de couleurs avec l'utilisateur -séparation visuelle spécifiable.

Cependant, ma question est: y a-t-il des recherches montrant un nombre "sûr" et "raisonnable" de couleurs distinctes qui peuvent être correctement associées à une légende de graphique ?

Pouvez-vous dire quel jaune est représenté par la ligne jaune?

enter image description here

31
Phrogz

Il y a bien sûr énormément de recherches sur la couleur et la perception des couleurs. Le plus pertinent pour votre objectif est peut-être le travail que Cynthia Brewer a fait sur ColorBrewer. Vous pouvez trouver l'outil résultant à http://colorbrewer2.org/ Il a été initialement conçu pour aider à choisir la couleur des cartes, mais il peut également être utilisé pour les graphiques statistiques (il est intégré dans le package ggplot2 de Hadley Wickham pour R).

Fondamentalement, c'est une sorte de sélecteur de couleurs mais les couleurs ont été systématiquement sélectionnées (et testées dans plusieurs tâches de lecture de carte) pour exprimer soit

  • catégories discrètes
  • augmentation des valeurs le long d'une seule dimension
  • valeurs divergentes autour du centre d'une échelle

Ils ont également été conçus pour être aussi reconnaissables que possible, pour "survivre" à la photocopie et pour être utilisables par des personnes présentant plusieurs types de déficiences de couleur (mais aucune palette avec plus de 4 catégories distinctes ne fonctionnait pour les participants au test de daltonisme).

Il y a aussi quelques références à ses publications sur le sujet à http://www.personal.psu.edu/cab38/Brewer_pubs.html

Enfin, dans de nombreux cas, il est également utile d'envisager d'autres moyens que la couleur pour afficher plusieurs séries chronologiques. Une solution est sparklines de Tufte ou ses petits multiples (c'est-à-dire de nombreux petits graphiques, côte à côte au lieu d'un grand graphique). Il peut également être un peu plus facile de suivre une ligne que de la faire correspondre avec une légende en bas. Vous pourriez donc vous en sortir avec des couleurs plus similaires si vous placez la légende directement sur le graphique (par exemple à la fin de chaque ligne) et non dans une boîte quelque part.

18
Gala

Maureen Stone de StoneSoup Consulting a créé une "palette de couleurs optimale" pour les graphiques. Il a 8 couleurs différentes, et elles ont été réglées pour le contraste, la différenciation, la perceptibilité et le daltonisme. Elle les fournit en deux ensembles différents: un pour les grands blocs de couleur (comme les graphiques en aires et en barres) et un pour les petits points ou lignes de couleur (nuages ​​de points ou graphiques en courbes). Katherine Rowell les documente sur son blog: http://ksrowell.com/blog-visualizing-data/2012/02/02/optimal-colors-for-graphs/

Je suis sûr que 8 couleurs ne sont pas un maximum théorique, mais c'est certainement un nombre pratique - lorsqu'il s'agit de séries de données distinctes.

Pour des gradations plus continues, il y a certainement des limites de perception des différences de nuances de couleur qui dépendent de la perception visuelle, et nous avons plus de capacité à distinguer dans certaines gammes de couleurs que d'autres.

Une autre question qui me vient à l'esprit: indépendamment de la couleur, le nombre de séries de données différentes que vous pouvez afficher dépend certainement d'autres facteurs tels que la surface et la résolution de l'écran, le regroupement/la proximité, la superposition (laquelle apparaît en haut si elles sont identiques) est-il même pratique d'essayer de trouver un nombre maximum théorique de couleurs?

6
Jim Jarrett

En supposant que les utilisateurs ne sont pas daltoniens , alors la question ne devrait pas être de savoir combien de couleurs, mais comment choisir les couleurs.

(Pour les utilisateurs daltoniens, essayez de fournir différents motifs aux lignes.)

Si vous vous assurez que toutes les deux couleurs sélectionnées diffèrent suffisamment l'une de l'autre et de l'arrière-plan, les couleurs doivent être correctes.

C'est à dire. pour chaque couleur que vous choisissez, comparez à l'arrière-plan, puis comparez à toutes les couleurs précédemment sélectionnées. Si toutes les comparaisons sont OK (assez différentes), alors la couleur doit être OK.

Ce qui soulève la question de savoir comment tester si deux couleurs diffèrent suffisamment.

La perception humaine standard des couleurs se traduit par un cube de couleur où la hauteur est l'intensité de la couleur (par exemple blanc vs noir).

Si vous ignorez l'intensité, vous vous retrouvez avec un triangle de couleur où plus le centre est proche, moins la couleur est saturée (plus de blanc) et lorsque vous tournez autour de la limite du triangle, vous changez la couleur principale ( par exemple rouge, orange, jaune, vert, bleu, violet).

Les couleurs peuvent être représentées avec différentes coordonnées de couleurs 3D (par exemple RVB, YIQ, YUV, CIE-L * ab, CIE-L * CH, ...).

Si vous soustrayez les coordonnées de deux couleurs dans l'un des espaces colorimétriques et calculez la distance du vecteur résultant (par exemple sqrt (sqr (x1-x2) + sqr (y1-y2) + sqr (z1-z2)), vous obtiendrez la différence entre deux couleurs.

Plus la différence est grande, plus il est facile de les distinguer. (Vous devrez décider d'une constante par rapport à laquelle tester la distance, en fonction de l'espace colorimétrique que vous choisissez.)

Si vous utilisez un espace colorimétrique où une coordonnée est basée sur l'angle autour du centre du triangle, vous devrez tenir compte du fait que la fin de la plage revient en boucle au début lors du calcul de la distance dans cette coordonnée.

Utilisation d'un espace colorimétrique plus perceptif, par ex. CIE-L * CH est plus recommandé que l'utilisation de RVB. (Les espaces colorimétriques que j'ai donnés dans l'exemple sont classés de moins perceptifs à plus perceptifs.)

2
Danny Varod