如何根据其范围为直方图提供自定义重复颜色
How to give custom repeating color for a histogram according to its range
我想绘制一个范围为 (2000,2005) 且 bin=0.1
的直方图
data=np.random.uniform(2000,2005,[1000,1])
eg:
2003.98154
2000.2205
2000.0543
2003.6567
2002.0811
2003.0414
2004.9626
2002.3848
2004.8585
2001.4287
2004.4931
但是在直方图中,我想为落在 0.7 到 0.9 之间的小数范围内的条形图指定特定的面部颜色
eg:
2000.7 to 2000.9
2001.7 to 2001.9
.
.
2005.7 to 2005.9
这可能吗?怎么做?
是的,在使用 plt.hist
创建直方图时,您可以检索各种信息并修改图表,包括颜色:
import numpy as np
import matplotlib.pyplot as plt
data = np.random.uniform(2000, 2005, [1000, 1])
N, bins, patches = plt.hist(data, bins=[2000 + 0.1 * i for i in range(51)], color="b")
for bin_number, patch in enumerate( patches):
# float comparison e.g. number_end >= 0.7 and number_end <= 0.9 is unsafe, so we use bin number
if 7 <= bin_number % 10 < 9:
patch.set_facecolor("r")
plt.show()
我想绘制一个范围为 (2000,2005) 且 bin=0.1
的直方图data=np.random.uniform(2000,2005,[1000,1])
eg:
2003.98154
2000.2205
2000.0543
2003.6567
2002.0811
2003.0414
2004.9626
2002.3848
2004.8585
2001.4287
2004.4931
但是在直方图中,我想为落在 0.7 到 0.9 之间的小数范围内的条形图指定特定的面部颜色
eg:
2000.7 to 2000.9
2001.7 to 2001.9
.
.
2005.7 to 2005.9
这可能吗?怎么做?
是的,在使用 plt.hist
创建直方图时,您可以检索各种信息并修改图表,包括颜色:
import numpy as np
import matplotlib.pyplot as plt
data = np.random.uniform(2000, 2005, [1000, 1])
N, bins, patches = plt.hist(data, bins=[2000 + 0.1 * i for i in range(51)], color="b")
for bin_number, patch in enumerate( patches):
# float comparison e.g. number_end >= 0.7 and number_end <= 0.9 is unsafe, so we use bin number
if 7 <= bin_number % 10 < 9:
patch.set_facecolor("r")
plt.show()