python matplotlib直方图为不同的条指定不同的颜色

Esm*_*me_ 5 python matplotlib histogram

我想根据直方图中的条形为不同的条形着色。例如,在下面的示例中,我希望前3个小节为蓝色,接下来的2个小节为红色,其余为黑色(实际的小节和颜色由代码的其他部分确定)。

我可以使用color选项更改所有条形的颜色,但是我希望能够提供所用颜色的列表。

import numpy as np
import matplotlib.pyplot as plt

data = np.random.rand(1000)
plt.hist(data,color = 'r')
Run Code Online (Sandbox Code Playgroud)

stu*_*ent 8

一种方法可能类似于其他答案中的方法

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()
Run Code Online (Sandbox Code Playgroud)

结果:

在此处输入图片说明