python - 如何根据其范围为直方图提供自定义重复颜色
问题描述
我想绘制一个范围为 (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()
推荐阅读
- javascript - 在 JavaScript 6 中旋转没有 jQuery 的文本
- javascript - 将 svg 点转换为缩放和旋转的 svg
- laravel - 如何在 laravel 的实时服务器上解决此错误?
- python - 导出为 HTML 时将 html 中的注释添加到 Tableau 仪表板
- assembly - print 800*600 bmp picture assembly
- php - PHPExcel_Calculation_Exception insert formula in field
- scala - Looking for help in Nested groupBy with scalikejdbc?
- java - Java 8 / Fernflower 反编译器:错误或功能
- html - 当表单有效或在控制器中引用表单时,无法让 ng-message 消失
- excel - Excel公式计算单个单元格中的多个可能组合