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
mic - 6 févr. 2011 à 11:43
A voir également:
- Choix d'une palette de couleurs
- Liste déroulante de choix excel - Guide
- Mon écran tv passe par toutes les couleurs - Forum TV & Vidéo
- La boite à couleurs - Télécharger - Divers Photo & Graphisme
- Remettre les couleurs d'origine android ✓ - Forum Samsung
- Les couleurs de mon téléphone ont disparu. - Forum LG
7 réponses
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) :-)
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) :-)
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 659
21 nov. 2006 à 15:52
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).
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).
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 659
22 nov. 2006 à 09:58
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:
(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.
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.
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 659
22 nov. 2006 à 10:04
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. :-/
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. :-/
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.
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.
20 nov. 2006 à 22:14