|
|
|
|
Choix d'une palette de couleurs
Dernière réponse le 22 nov 2006 à 12:24:32 sebsauvage, le 20 nov 2006 à 14:51:26Bonjour !
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++
Ben ça risque d'être un brin compliqué, ça dépend de l'imprimante (certaines permettent une prévue chromatique et d'autres pas).
|
J'ai retrouvé l'url, si toujours intéressé:
|
Bon, après un peu de recherche (y'a vraiment pas grand chose sur le web), voilà ce que j'ai trouvé:
|
Bon je vous livre le fruit de mes réflexions (même si je ne considère pas ça comme une solution définitive).
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++ |
Et je n'ai pas encore testé le rendu en noir & blanc :|
|
Je dois avouer ne rien connaître à Python, donc je suis un peu largué :-)
|

