web-dev-qa-db-fra.com

python histogramme matplotlib spécifier différentes couleurs pour différentes barres

Je veux colorer différentes barres dans un histogramme en fonction du bac auquel elles appartiennent. par exemple. dans l'exemple ci-dessous, je veux que les 3 premières barres soient bleues, les 2 suivantes soient rouges et le reste noir (les barres et la couleur réelles sont déterminées par d'autres parties du code).

Je peux changer la couleur de toutes les barres en utilisant l'option couleur, mais je voudrais pouvoir donner une liste des couleurs utilisées.

import numpy as np
import matplotlib.pyplot as plt

data = np.random.Rand(1000)
plt.hist(data,color = 'r')
5
Esme_

Une façon peut être similaire à l'approche dans autre réponse :

import numpy as np
import matplotlib.pyplot as plt

fig, ax = plt.subplots()
data = np.random.Rand(1000)

N, bins, patches = ax.hist(data, edgecolor='white', linewidth=1)

for i in range(0,3):
    patches[i].set_facecolor('b')
for i in range(3,5):    
    patches[i].set_facecolor('r')
for i in range(5, len(patches)):
    patches[i].set_facecolor('black')

plt.show()

Résultat:

enter image description here

8
student