gpt4 book ai didi

python - 绘制具有恒定条宽但不同 bin 大小的直方图

转载 作者:行者123 更新时间:2023-12-04 15:49:26 24 4
gpt4 key购买 nike

我有一个 Python 脚本,它生成三个数据集的单个直方图,其中 bin 大小以列表的形式提供。Python脚本代码如下:

bin_l=np.arange(0,14,1)
bin_l=np.append(bin_l,max_bin)

plt.hist([wind_plot_o, wind_plot_m, wind_plot_b],bins=bin_l, align='mid',
label=['label1', 'label2', 'label3'],color=['k','g', 'r'])

其中,bin_l后面追加的元素是给定数据的最大值。所以最后一个 bin 大小将不同于其他 bin 大小。
上面的脚本片段以及脚本的其余部分产生了以下情节:
Histogram这很好,除了一个问题。我需要所有条形大小相同,我不希望条形大小取决于 bin 大小,这在我的情况下看起来不太好。
hist() 的 matplotlib 文档说参数“rwidth”可用于调整条形宽度,仍然相对于 bin 大小,这是它当前正在做的,对我没有用。
那么,如何在使用非均匀 bin 大小时保持 matplotlib 直方图的条宽相同?

注意:它可能看起来像 this 的副本发布,但事实并非如此。我没有为 X 轴使用对数刻度。

最佳答案

这有点不合常规。但是 plt.hist 返回每个 bin 中的元素数。您可以使用此数据(或来自 numpy.histogram 以跳过绘制原始直方图)来创建宽度相等的“条形图”。

counts, _, _ = plt.hist(...)
plt.close() # Don't want the plot from plt.hist
for n, Y in enumerate(counts):
X = [n*.3 + x for x in range(len(Y))] # position bars next to each other
plt.bar(X, Y, 0.3)

关于python - 绘制具有恒定条宽但不同 bin 大小的直方图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54522231/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com