【发布时间】:2019-06-28 13:16:26
【问题描述】:
我有一个 Python 脚本,它生成三个数据集的单个直方图,其中 bin 大小作为列表提供。 Python脚本sippet如下:
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 大小不同。
上面的脚本 sn-p 与脚本的其余部分一起生成以下图:
这很好,除了一个问题。我需要所有条的大小相同,我不希望条的大小取决于箱大小,这在我的情况下看起来不太好。
hist() 的 matplotlib 文档说参数“rwidth”可用于调整条形宽度,仍然相对于 bin 大小,这是它当前正在做的,对我没有用。
那么,如何在使用非均匀 bin 大小的同时保持 matplotlib 直方图的条形宽度相同?
注意:它可能看起来像 this 帖子的副本,但事实并非如此。我没有在 X 轴上使用对数刻度。
【问题讨论】:
-
我不建议在创建分组直方图时使用不相等的 bin 大小。这使得直方图非常难以阅读,甚至无法阅读。为什么不从一开始就使用
bin_l=np.arange(0,17,1)? -
@ImportanceOfBeingErnest 不等分箱中的部分并不重要,但我不希望它们被排除在外。这就是为什么我在最后使用不相等的 bin 大小。
标签: python python-2.7 matplotlib histogram binning