在不使用 plt 的情况下从直方图中获取值

问题描述 投票:0回答:1

有没有什么方法可以获取直方图的“x”和“y”中的值而不用图形**它?我在代码中多次(在每个循环中)使用下面的函数,并且我注意到我的代码在每个循环中变得越来越慢。

** 我不确定它内部的作用是否是绘制图表,但我知道尽管使用了 plt.close(),但我的代码中的缓慢与函数“plt.hist”有关。谢谢。

# a is a list
def function_hist(a, ini, final):

    # 12 bins
    bins = np.linspace(ini, final, 13)
    weightsa = np.ones_like(a)/float(len(a))
    y, x, _ = plt.hist(a, bins, weights = weightsa)
    plt.close()
python histogram
1个回答
11
投票

使用numpy.histogram

您可以如下修改您的功能

# a is a list
def function_hist(a, ini, final):

    # 12 bins
    bins = np.linspace(ini, final, 13)
    weightsa = np.ones_like(a)/float(len(a))
    return np.histogram(np.array(a), bins, weights = weightsa)
    
© www.soinside.com 2019 - 2024. All rights reserved.