使用python为直方图中的特定条形图着色

时间:2017-03-16 16:44:05

标签: python matplotlib histogram plotly

我有一个直方图(matplotlib或plotly)并且想要为特定条颜色着色,其在条形范围内具有值N(例如,如果N = 131,则彩色条必须为130-132)。我怎么能这样做?

1 个答案:

答案 0 :(得分:4)

致电plt.hist()时,会返回三件事。首先是一个数组,其中包含每个bin中的值。其次是每个bin的值,最后是patches的数组。这些允许您单独修改每个栏。因此,您需要做的就是确定范围130-132的哪个bin,然后修改颜色,例如:

import numpy as np
import matplotlib.pyplot as plt

values =  np.random.randint(51, 140, 1000)
n, bins, patches = plt.hist(values, bins=np.arange(50, 140, 2), align='left', color='g')
patches[40].set_fc('r')
plt.show()

会显示如下内容:

example showing one red bar

此处第41个补丁对应于范围130-132,因为我选择的容器从50开始,然后以2为步长升至140。因此,{{1}总共有箱子。如果您45,您会看到索引print bins是您想要的那个:

40