当前位置: 首页 > 知识库问答 >
问题:

如何使用Python为直方图中的可变条柱范围获得相同的条柱宽度?

鲜于念
2023-03-14

我正在尝试创建一个具有自定义垃圾箱范围的直方图。但是,正如您在下面的直方图中看到的,垃圾箱宽度不是恒定的大小。

理想情况下,我想要这样的东西。箱之间的间距并不重要,我只是希望每个箱子/列的宽度相同:

我用来生成第一个直方图的代码是:

plt.figure()
weights = np.ones_like(data)/float(len(data))
plt.hist(data, bins=[0, 1.0, 3.0, 5.0, 10.0, 25.0, 90.0], weights=weights) 

共有1个答案

严修德
2023-03-14

我不认为直方图真的是你想要的。通常直方图具有连续的 x 轴,在示例中,您显示的 a 轴值是分类的。在这种情况下,我建议对数据进行装箱,并首先获取箱子计数。然后绘制条形图。这样:

data = np.random.randint(0, 90, 500)
bins = np.array([1,3,5,10,25,90])
digitized = np.digitize(data, bins)
counts = np.bincount(digitized)
fig, ax = plt.subplots()
ax.bar(np.arange(counts.size), counts)
ax.set_xticklabels(['', '0\N{DEGREE SIGN} - 1\N{DEGREE SIGN}', '1\N{DEGREE SIGN} - 3\N{DEGREE SIGN}', '3\N{DEGREE SIGN} - 5\N{DEGREE SIGN}', '5\N{DEGREE SIGN} - 10\N{DEGREE SIGN}', '10\N{DEGREE SIGN} - 25\N{DEGREE SIGN}', '> 25\N{DEGREE SIGN}'])
fig.show()
 类似资料:
  • 我正在尝试在 matplotlib 中绘制具有多个数据序列的直方图。 我有不相等间隔的箱子,但是我想要每个箱子得到相同的宽度。所以我这样使用属性< code>width: 结果是: 我怎样才能去掉两个系列的两个对应箱子之间的边距?一、 e.如何为每个箱子分组不同系列的钢筋? 谢谢

  • 为了生成此图,我执行了以下操作: 但是,正如您所注意到的,我想绘制每个数据点的相对频率的直方图,其中只有3个具有不同大小的条柱: bin1 = 0.03 - bin2 = 0.3 - bin3=2- 直方图看起来很难看,因为最后一个面元的大小相对于其他面元来说非常大。如何修复直方图?我想改变箱子的宽度,但不想改变每个箱子的范围。

  • 柱形图包括柱状图和条形图。 柱状图是用竖直的柱子来展现数据,一般用于展现横向的数据变化及对比。 条形图是用横向的柱子来展现数据,一般用于纵向的数据排名及对比。 一、柱状图 图4-7 Highcharts 柱状图 柱状图相关的配置参考 API 文档: 柱状图配置:针对当前数据列有效 柱状数据列配置 :针对当前页面的所有柱状数据列有效 二、条形图 条形图其实就是 X、Y 轴对调的柱状图,在 Highc

  • 当数字列表中存在异常值时,其直方图的最后一个条柱短且稀疏。因此,我希望有最后一个箱子来使用范围。对于此示例,包含大于 的所有值将为 10。 上面列表的直方图 我还没想好怎么和海伯恩在一起。如果matplotlib能奏效,那也太棒了。提前致谢!

  • 问题内容: 这是Highchart项目符号图表的示例http://jsfiddle.net/jlbriggs/LdHYt/1/ 如何将其转换为列项目符号图表? 问题答案: 这是您要找的东西吗?小提琴

  • 柱状/条形图提供了一种以竖线表示数据值的显示方式。用来显示数据趋势,并排比较多个数据集。 new Chart(document.getElementById("chartjs-1"),{"type":"bar","data":{"labels":["January","February","March","April","May","June","July"],"datasets":[{"labe