Couleurs en Python
Cet article a pour but de présenter les couleurs nommées utilisées par le module Matplotlib
en Python pour l’affichage des graphes. En traçant des graphiques, Python offre aux utilisateurs la possibilité de choisir des couleurs nommées affichées via sa bibliothèque Matplotlib
.
En Python, les noms des couleurs et leurs codes hexadécimaux sont récupérés dans un dictionnaire du module color.py
.
Dans le code suivant, nous imprimons les noms des couleurs de ce module.
import matplotlib
for cname, hex in matplotlib.colors.cnames.items():
print(cname, hex)
Production:
'aliceblue': '#F0F8FF',
'antiquewhite': '#FAEBD7',
'aqua': '#00FFFF',
'aquamarine': '#7FFFD4',
'azure': '#F0FFFF',
'beige': '#F5F5DC',
'bisque': '#FFE4C4',
'black': '#000000',
'blanchedalmond': '#FFEBCD',
'blue': '#0000FF',
'blueviolet': '#8A2BE2',
'brown': '#A52A2A',
'burlywood': '#DEB887',
'cadetblue': '#5F9EA0',
...more
Le matplotlib.colors.cnames.items()
renvoie la collection de dictionnaires où sont stockés les noms et codes de la couleur. Le nom est stocké comme clé du dictionnaire et le code hexadécimal comme valeur.
Nous pouvons utiliser ces couleurs avec différents types de graphiques et de figures avec des bibliothèques compatibles. Nous pouvons tracer toutes ces couleurs dans un seul graphique et comparer chaque couleur.
Voir le code suivant.
import matplotlib.pyplot as plt
import matplotlib.patches as patches
import matplotlib.colors as colors
import math
fig = plt.figure()
ax = fig.add_subplot(111)
ratio = 1.0 / 3.0
count = math.ceil(math.sqrt(len(colors.cnames)))
x_count = count * ratio
y_count = count / ratio
x = 0
y = 0
w = 1 / x_count
h = 1 / y_count
for cl in colors.cnames:
pos = (x / x_count, y / y_count)
ax.add_patch(patches.Rectangle(pos, w, h, color=cl))
ax.annotate(cl, xy=pos)
if y >= y_count - 1:
x += 1
y = 0
else:
y += 1
plt.show()
Tracé de sortie :
Dans le code ci-dessus, nous avons tracé chaque couleur avec son nom respectif. Nous avons divisé la figure en plusieurs sous-parcelles et tracé chaque couleur dans un petit patch rectangulaire en utilisant la fonction add_patch()
sur chaque axe pour chaque couleur.