Python 使用Matplotlib创建具有定义的箱子和高度的对数柱状图

Python 使用Matplotlib创建具有定义的箱子和高度的对数柱状图,python,matplotlib,histogram,Python,Matplotlib,Histogram,我试图绘制一些从MCNP输出的中子通量能谱结果。我已经有了一个很好的主意,如何使用它来适当地设置权重。这是我目前正在处理的数据 Intensity = [0.0, 61798.50000000001, 18032.899999999998, 27729.300000000003, 16493.0, 20837.0, 27507.299999999996, 34675.899999999994, 102999.0, 135864.0, 250667.99999999997] #Fluxes Ene

我试图绘制一些从MCNP输出的中子通量能谱结果。我已经有了一个很好的主意,如何使用它来适当地设置权重。这是我目前正在处理的数据

Intensity = [0.0, 61798.50000000001, 18032.899999999998, 27729.300000000003, 16493.0, 20837.0, 27507.299999999996, 34675.899999999994, 102999.0, 135864.0, 250667.99999999997] #Fluxes
Energy = [0.0, 1e-07, 1e-06, 1e-05, 0.0001, 0.001, 0.01, 0.1, 1.0, 10.0, 20.0] #Energy MeV
plt.hist(energy,  weights=intensity, log=True)
plt.show()

当我绘制这幅图时,只显示了三个条形图。由于每个箱子的数量级,直方图似乎缺少一些值。是否有一种简单的方法可以将垃圾箱设置为对数

编辑:

我已经尝试过包括
ax.setxscale('log')

下面是当前的情节

我不确定为什么我的权重只用于创建三个箱子,而且高度似乎与任何强度值都不匹配。想法


谢谢大家!

欢迎来到SO!当你提出一个问题时,试着增加一个最低限度的内容:输入样本、预期输出样本、你尝试了什么、研究和你在哪里卡住了。你尝试了什么?我发现它以一种奇怪的方式对我的震级进行分组,因为我使用的是
bins=len(energy)
,我只需要直接设置
bins=energy
,来指定箱子。情节现在看起来很棒!