Choix d'une palette de couleurs

Fermé
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 - 20 nov. 2006 à 14:51
 mic - 6 févr. 2011 à 11:43
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.

7 réponses

j'ai retrouvé l'url, si toujours intéressé:
http://pourpre.com/fr/
2
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
20 nov. 2006 à 22:14
Merci. Intéressant, le site.
0
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) :-)
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
21 nov. 2006 à 15:52
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: https://wiki.tcl-lang.org/page/Selecting+visually+different+RGB+colors )


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: https://wiki.tcl-lang.org/page/Pastel+Colors )


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

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

0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
22 nov. 2006 à 09:58
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): https://sebsauvage.net/temp/ccm/palette00.png

Pour éviter d'avoir des couleurs adjacentes de teintes trop proches, j'entrelace les couleurs: https://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:
https://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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
22 nov. 2006 à 10:04
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. :-/
0
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.
0
comment faire du marron chocolat en peinture murale
0