【发布时间】:2017-03-16 16:44:04
【问题描述】:
我有一个直方图(matplotlib 或 plotly)并且想要为特定条形着色,巫婆在条形范围内具有值 N(例如,如果 N=131,彩色条形必须为 130-132)。我该怎么做?
【问题讨论】:
标签: python matplotlib histogram plotly
我有一个直方图(matplotlib 或 plotly)并且想要为特定条形着色,巫婆在条形范围内具有值 N(例如,如果 N=131,彩色条形必须为 130-132)。我该怎么做?
【问题讨论】:
标签: python matplotlib histogram plotly
当调用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。所以总共会有 45 垃圾箱。如果您 print bins 您会看到索引 40 是您想要的:
[ 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84
86 88 90 92 94 96 98 100 102 104 106 108 110 112 114 116 118 120
122 124 126 128 130 132 134 136 138]
【讨论】: