You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Matplotlib中使用指定Bins和预计算Values绘制直方图?

用条形图实现可变区间的预计算百分比直方图

你可以直接使用matplotlib的bar()函数模拟直方图效果,通过自定义每个条形的宽度来匹配可变的bin区间,无需原始数据集。具体实现如下:

  1. 计算每个bin的宽度:从给定的bins数组中,逐个计算相邻边界的差值,得到每个区间的实际宽度。
  2. 绘制自定义宽度的条形图:将bin的左边界作为条形的x位置,预计算的百分比作为高度,刚才算出的区间宽度作为条形宽度,同时设置边缘对齐,让条形和bin区间完全对应。

完整代码示例:

import matplotlib.pyplot as plt

# 你的预定义数据
values = [0.5, 0.25, 0.25]  # 每个bin的百分比高度
bins = [0.0, 1.0, 5.0, 7.0]  # 区间边界

# 计算每个bin的宽度
bin_widths = [bins[i+1] - bins[i] for i in range(len(values))]

# 绘制模拟直方图
plt.bar(
    x=bins[:-1],  # 取前n个bin左边界作为x坐标
    height=values,
    width=bin_widths,
    align='edge',  # 条形左边缘与bin左边界对齐,贴合直方图逻辑
    edgecolor='black'  # 添加边框,更贴近直方图视觉样式
)

# 配置图表细节
plt.xlabel('区间范围')
plt.ylabel('百分比')
plt.title('可变区间的预计算百分比直方图')
plt.xticks(bins)  # 设置x轴刻度为所有bin边界,清晰展示区间划分

plt.show()

这段代码生成的图表和标准直方图视觉一致,完美适配你拥有的预计算数据,同时支持任意宽度的bin区间。

内容的提问来源于stack exchange,提问作者Micah Pearce

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 16:31:02