Python Matplotlib 直方图:为不同的条形指定不同的颜色

15

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

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

import numpy as np
import matplotlib.pyplot as plt

data = np.random.rand(1000)
plt.hist(data,color = 'r')

如果您知道有多少个箱子以及它们应该是什么颜色,那么 hist 函数将接受一个颜色列表。 - DavidG
@DavidG,你能给我演示一下吗?我尝试过了,但是没有成功。 - Esme_
1个回答

35

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

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()

结果:

在此输入图片描述


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接