Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Matplotlib直方图条宽度_Python_Matplotlib - Fatal编程技术网

Python Matplotlib直方图条宽度

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',

我使用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', 
    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轴对数图中线性显示(相同宽度)。