我有一个直方图(matplotlib或plotly)并且想要为特定条颜色着色,其在条形范围内具有值N(例如,如果N = 131,则彩色条必须为130-132)。我怎么能这样做?
答案 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()
会显示如下内容:
此处第41个补丁对应于范围130-132
,因为我选择的容器从50
开始,然后以2为步长升至140
。因此,{{1}总共有箱子。如果您45
,您会看到索引print bins
是您想要的那个:
40