Rechercher : dans
Par :

Choix d'une palette de couleurs

Dernière réponse le 22 nov 2006 à 12:24:32 sebsauvage, le 20 nov 2006 à 14:51:26 
 Signaler ce message aux modérateurs

Bonjour !

Voilà: Je fais des graphes (barres, lignes, camemberts...). Mon problème est de bien choisir les couleurs.
Parfois j'ai 2, 3 ou 4 catégories, parfois plus.

- Il faut qu'on puisse bien les distinguer à l'écran.
- Il faut qu'on puisse aussi les distinguer à l'impression (en niveaux de gris).

(Les couleurs par défaut d'Excel ou OpenOffice sont immondes.)

Est-ce que vous auriez des sites avec des recommandations ?
En particulier pour de petites palettes (2 à 6 couleurs).


Je pense a priori à des couleurs pastels, avec des teintes (hues) bien différenciées (répartitions sur le cercle chromatique), ce qui devrait permettre de bien les différencier.


Merci d'avance.
“Life is short - You need Python” -- Bruce Eckel, membre du comité ANSI C++

Meilleures réponses pour « Choix d'une palette de couleurs » dans :
Changer de fond d'écran VoirPour Windows XP et versions antérieures Pour Windows Vista Obtenir des fonds d'écran Solution plus rapide Comment changer l'arrière-plan du Bureau ? Un fond d'écran est une image utilisée en arrière-plan de votre bureau. Lors d'une...
Choisir une distribution Linux VoirChoisir sa distribution GNU/Linux est loin d'être évident ! Surtout quand on débute sur la banquise ;-) Ceci n'a pas la prétention de promouvoir une distribution au détriment des autres. C'est plutôt une liste de solutions classées par...
Comment choisir son lecteur DVD portable / Divx ? VoirLa compatibilité médias, critère de choix Les lecteurs DVD portables offrent aujourd'hui un grand confort de visionnage. Mais certains critères permettent de reconnaître les appareils adaptés aux évolutions technologiques récentes : compatibilité...
Télécharger PALETTE VoirPour définir une couleur pour une image, il faut passer par une application de traitement d’images. Mais il n’est pas possible de pipeter une couleur hors de l’application, par exemple sur le bureau. Palette est un utilitaire...
La table des couleurs VoirLe codage des couleurs Les couleurs en HTML sont définies par 3 nombres hexadécimaux représentant les tons de Rouge, de Vert et de Bleu (selon le codage RGB (Red Green Blue, en français : RVB) de la couleur choisie. Ainsi la syntaxe de codage...
La représentation informatique de la couleur VoirLes représentations de la couleur Afin de pouvoir manipuler correctement des couleurs et échanger des informations colorimétriques il est nécessaire de disposer de moyens permettant de les catégoriser et de les choisir. Ainsi, il n'est pas rare...
CSS - Les couleurs VoirLes couleurs Le standard CSS propose différentes façons de définir des couleurs : par un nom avec la notation hexadécimale avec la notation décimale Appel d'une couleur par son nom Le langage HTML définit des noms pour un nombre limité de...

1

king, le 20 nov 2006 à 17:53:41

Ben ça risque d'être un brin compliqué, ça dépend de l'imprimante (certaines permettent une prévue chromatique et d'autres pas).

Tu peux toujours tester les graphs sur variantes de gris (ce que permet photoshop et d'autres).

Sinan il y a un site qui s'est spécialisé sur les couleurs, faudra que je regarde si j'ai encore l'url (j'ai un petit trou de mémoire) :-)

Répondre à king

2

king, le 20 nov 2006 à 19:31:32

J'ai retrouvé l'url, si toujours intéressé:
http://pourpre.com/

Répondre à king

3

sebsauvage, le 20 nov 2006 à 22:14:22

Merci. Intéressant, le site. “Life is short - You need Python” -- Bruce Eckel, membre du comité ANSI C++

Répondre à sebsauvage

4

sebsauvage, le 21 nov 2006 à 15:52:35

Bon, après un peu de recherche (y'a vraiment pas grand chose sur le web), voilà ce que j'ai trouvé:

Méthode 1:

En utilisant HSL:

- Garder toujours garder une saturation maximale (S=1)
- Tourner autour du cercle chromatique (H de 0 à 1). Prendre au maximum 7 points.
- S'il y a besoin de plus de couleurs différentes, garder ces 7 teintes et varier la luminosité (L).

( Source: http://wiki.tcl.tk/666 )


Méthode 2:

- générer une couleur aléatoire RGB
- convertir en HSV et rejeter la couleur si elle a V<0.7

( Source: http://wiki.tcl.tk/10330 )


J'ai plus qu'à essayer ça...

(La méthode 2 n'assure pas qu'il n'y aura pas de couleurs identiques).

“Life is short - You need Python” -- Bruce Eckel, membre du comité ANSI C++

Répondre à sebsauvage

5

sebsauvage, le 22 nov 2006 à 09:58:42

Bon je vous livre le fruit de mes réflexions (même si je ne considère pas ça comme une solution définitive).

Je me contente de tourner autour du cercle chromatique, avec S=0.9 et L=0.85
(Je suis obligé de prend des couleurs moins pastel, sinon elles sont trop difficiles à distinguer, d'où le S=0.9).

Ce qui donne (pour 7 couleurs): http://sebsauvage.net/temp/ccm/palette00.png

Pour éviter d'avoir des couleurs adjacentes de teintes trop proches, j'entrelace les couleurs: http://sebsauvage.net/temp/ccm/palette01.png

Et au final, je n'utilise cette méthode que quand j'ai une série de plus de 7.
Pour 7 et moins, j'ai finalement créé une palette à la main avec des couleurs qui me semblent mieux différenciées:
http://sebsauvage.net/temp/ccm/palette02.png
(C'est fou le boulot que ça peut être de créer une "simple" palette de 7 couleurs.)

Je trouve que la donne une meilleure lisibilité.


Voici le code Python:

def color_generate(n):
    """ Returns a palette of colors suited for charting.
    
        Input: 
            n (integer) : The number of colors to return
            
        Output:
            A list of colors in HTML notation (eg.['#cce0ff', '#ffcccc', '#ccffe0', '#f5ccff', '#f5ffcc'])
       
        Example:
            >>> print color_generate(5)
            ['#5fcbff','#e5edad','#f0b99b','#c3e5e4','#ffff64']
    """
    if n==0:
        return []   

    small_palette = ['#5fcbff','#e5edad','#f0b99b','#c3e5e4','#ffff64','#ffbcf0','#ffd348']
    if n<=len(small_palette):
        return small_palette[:n]
    start_hue = 2.0/3.0   # 0=red    1/3=0.333=green   2/3=0.666=blue 
    saturation = 0.9
    lightness = 0.85
    colors = ['#%02x%02x%02x' % HSL_to_RGB(hue,saturation,lightness) for hue in floatrange(start_hue,start_hue+1,n+1)][:-1]
    return colors[0::2]+colors[1::2]


(Cette fonction utilise les fonctions HSL_to_RGB() et floatrange() que vous trouverez sur mon site.)


Voilà un exemple de ce que ça donne (J'utilise matplotlib pour créer les graphes):
http://sebsauvage.net/temp/ccm/palette_exemple01.png
http://sebsauvage.net/temp/ccm/palette_exemple02.png


ça me semble acceptable.


Attention: Ne pas utiliser ces couleurs pour tracer des lignes (c'est trop clair). Elles sont uniquement valables pour remplir des formes (barres, camemberts...)



Je suis quand même assez surpris: Il y a tellement de monde qui fait des graphes, tout le temps, en entreprise. Je suis surpris qu'on trouve si peu de réponses sur internet sur ce sujet.
“Life is short - You need Python” -- Bruce Eckel, membre du comité ANSI C++

Répondre à sebsauvage

6

sebsauvage, le 22 nov 2006 à 10:04:27

Et je n'ai pas encore testé le rendu en noir & blanc :|


Effectivement, comme tu dis, ça dépend aussi de la fonction de transfer de l'imprimante pour convertir en niveaux de gris.
ça doit être différent selon les imprimantes. :-/
“Life is short - You need Python” -- Bruce Eckel, membre du comité ANSI C++

Répondre à sebsauvage

7

 king, le 22 nov 2006 à 12:24:32

Je dois avouer ne rien connaître à Python, donc je suis un peu largué :-)

Pour l'imprimante, j'en ai une basique de chez basique et pour les variantes de gris, y a quelque surprises de temps en temps. Ce pourquoi je teste d'abord sous Photoshop.

A l'école où j'ai suivi les cours, ils en ont une qui permet de voir si les couleurs choisies seront correctement gérées et offre une prévue en variation de gris.

Répondre à king
Collection CommentÇaMarche.net