Python Matplotlib直方图条宽度
我使用matplotlib histtype='bar'将四个数据集绘制在一起。它自动做的是相对于数据集的大小更改每个数据集的条的宽度。我希望所有四个数据集的条形宽度相等Python Matplotlib直方图条宽度,python,matplotlib,Python,Matplotlib,我使用matplotlib histtype='bar'将四个数据集绘制在一起。它自动做的是相对于数据集的大小更改每个数据集的条的宽度。我希望所有四个数据集的条形宽度相等 [n, bins, patches = plt.hist( [np.sort(x2), np.sort(x3), np.sort(x4), np.sort(x5)], bins=np.logspace(np.log10(8e-8), np.log10(1), 7), histtype='bar',
[n, bins, patches = plt.hist(
[np.sort(x2), np.sort(x3), np.sort(x4), np.sort(x5)],
bins=np.logspace(np.log10(8e-8), np.log10(1), 7),
histtype='bar',
weights=[w2,w3,w4,w5],
label=[
'$\Delta {{\chi}^2} <40$',
'$u_0 < 0.045$',
'${s}_{fitted} >5$',
'Multi-peaked'
]
)][1]
[n、箱子、补丁=plt.hist(
[np.sort(x2)、np.sort(x3)、np.sort(x4)、np.sort(x5)],
箱子=np.logspace(np.log10(8e-8),np.log10(1),7),
histtype='bar',
权重=[w2,w3,w4,w5],
标签=[
“$\Delta{{\chi}^2}5$”,
“多峰”
]
)][1]
实际上,每个箱子的大小(数值)都相同,但x轴是对数轴,因此看起来宽度不同。尝试在线性x轴(非对数)上绘制单个数据集,您将看到条的宽度是相同的。否,您可以通过
bins
参数自行设置条的宽度。谢谢,但我不确定是否理解您的观点。我的理解是,所有数据集的存储箱都是相同的,那么如何确定宽度呢?哦,对不起,这种绘图确实有误导性。你想要一个分类直方图吗?我想您可能会决定先计算柱状图,然后在您想要的位置和宽度绘制一个条形图。@EdgarR.Mondragón我想要一个柱状图,但我想我可以使用柱状图来绘制条形图。@ImportanceOfBeingErnest我想这样行得通。如果找不到任何其他方法来修复我的直方图,我会试试。谢谢。我想你是对的。你有没有建议解决这个问题的方法?因为我需要保持x轴在对数刻度中。唯一保持x轴在对数刻度中并显示相同宽度的方法是使用不同的箱子大小,在它们之间使用对数。然后,它们将在x轴对数图中线性显示(相同宽度)。