Python 如何从直方图中获取K max值?

Python 如何从直方图中获取K max值?,python,matplotlib,Python,Matplotlib,我想提取matplotlib直方图中的3个最大值 有很多方法可以提取直方图中的(唯一的)最大值,但我没有找到任何关于提取直方图中2-3或4个最大值的方法 我还希望它是自动的(不特定于以下情况) 这是我的数据和代码: from matplotlib.pyplot import * Angle=[0.0, 0.0, 0.0, 0.0, 1.5526165117219184, 0.0, 1.559560844536934, 0.0, 1.5554129250143014, 1.5529410

我想提取matplotlib直方图中的3个最大值

有很多方法可以提取直方图中的(唯一的)最大值,但我没有找到任何关于提取直方图中2-3或4个最大值的方法

我还希望它是自动的(不特定于以下情况)

这是我的数据和代码:

from matplotlib.pyplot import *    

Angle=[0.0, 0.0, 0.0, 0.0, 1.5526165117219184, 0.0, 1.559560844536934, 0.0, 1.5554129250143014, 1.5529410816553442, 1.5458015331759765, -0.036680787756651845, 0.0, 0.0, 0.0, 0.0, -0.017855245139552514, -0.03224688243525392, 1.5422326689561365, 0.595918005516301, -0.06731387579270513, -0.011627382956383872, 1.5515679276951895, -0.06413211500143158, 0.0, -0.6123221322275954, 0.0, 0.0, 0.13863973713415806, 0.07677189126977804, -0.021735706841792667, 0.0, -0.6099169030770674, 1.546410917622178, 0.0, 0.0, -0.24111767845146836, 0.5961991412974801, 0.014704822377851432]

figure(1,figsize=(16,10))
plt.hist(Angle, bins=100,label='Angle')
show()

plt.hist
输出料仓高度、料仓边界和矩形面片。
np.argsort
可以对值进行排序,并使用结果对其他数组进行索引

下面的代码将pyplot导入为
plt
,因为将其导入为
*
会导致很多混淆

导入matplotlib.pyplot作为plt
将numpy作为np导入
角度=[0.0, 0.0, 0.0, 0.0, 1.5526165117219184, 0.0, 1.559560844536934, 0.0, 1.5554129250143014, 1.5529410816553442, 1.5458015331759765, -0.036680787756651845, 0.0, 0.0, 0.0, 0.0, -0.017855245139552514, -0.03224688243525392, 1.5422326689561365, 0.595918005516301, -0.06731387579270513, -0.011627382956383872, 1.5515679276951895, -0.06413211500143158, 0.0, -0.6123221322275954, 0.0, 0.0, 0.13863973713415806, 0.07677189126977804, -0.021735706841792667, 0.0, -0.6099169030770674, 1.546410917622178, 0.0, 0.0, -0.24111767845146836, 0.5961991412974801, 0.014704822377851432]
plt.图(1,figsize=(10,6))
值、存储单元、面片=plt.hist(角度、存储单元=30)
order=np.argsort(值)[:-1]
打印(“4个最高的箱子:”,值[顺序][:4])
按顺序[:4]]打印i的(“其范围:”、[(箱[i],箱[i+1]))
对于i,按顺序[:4]:
贴片[i]。设置颜色(“紫红色”)
plt.show()
输出:

4 highest bins: [21.  8.  3.  2.]
  their ranges: [(-0.03315333842372081, 0.03924276080176348), (1.4871647453114498, 1.559560844536934), (-0.1055494376492051, -0.03315333842372081), (0.5460154553801537, 0.6184115546056381)]

另一个突出显示3个最高箱子的示例:

Angle=np.random.normal(np.tile(np.random.uniform)(1100,20,100),5)
值、存储单元、面片=plt.hist(角度、存储单元=100)

非常感谢您给出这个完美的答案!