Extraire le code RGB à partir d'une colormap de Matplotlib

Published: 14 juillet 2014

DMCA.com Protection Status

Présentation du problème: On dispose par exemple d'un graphique réalisé avec matplotlib (dans notre exemple on a utilisé le code suivant qui est un nuage de points avec deux classes de couleurs différentes) et on souhaite utiliser les mêmes couleurs pour construire un autre graphique comme un histogramme. Avec python et matplotlib il est relativement simple de récupérer le code RGB pour une colormap donnée (voir):

Extraire le code RGB à partir d'une colormap de Matplotlib 1/2
Extraire le code RGB à partir d'une colormap de Matplotlib 1/2

>>> import pylab as pl
>>> cmap=pl.cm.Paired
>>> cmap(0.0)
(0.65098041296005249, 0.80784314870834351, 0.89019608497619629, 1.0)
>>> cmap(1.0)
(0.69411766529083252, 0.3490196168422699, 0.15686275064945221, 1.0)
>>>

On peut alors récupérer ces codes couleurs RGB et tracer l'histogramme:

Extraire le code RGB à partir d'une colormap de Matplotlib 2/2
Extraire le code RGB à partir d'une colormap de Matplotlib 2/2

import matplotlib.pyplot as plt
import pylab as pl
import numpy as np

counts_01 = [8,12,8,5,4,3,2,1,0,0]
counts_02 = [5,10,12,15,11,10,8,5,3,2]

fig = plt.figure()

ax = fig.add_subplot(111)

ind = np.arange(0,1,0.1)

width = 0.1

rects1 = ax.bar(ind+width/2.0, counts_01, width/2.0, color=(0.65098041296005249, 0.80784314870834351, 0.89019608497619629, 1.0), label='1')

rects2 = ax.bar(ind, counts_02, width/2.0, color=(0.69411766529083252, 0.3490196168422699, 0.15686275064945221, 1.0), label='2')

ax.set_ylabel('Counts')

pl.legend()

plt.savefig('BarsTwoColors.png')
plt.show()

Recherches associées

Image

of