如何在Matplotlib条形图中删除条之间的间隙

时间:2013-12-08 13:45:12

标签: python matplotlib

我正在使用这样的调用在Matplotlib制作条形图:

xs.bar(bar_lefts, bar_heights, facecolor='black', edgecolor='black')

我得到一个如下所示的条形图:

Bar chart with gaps

我想要的是在连续的条之间没有白色间隙,例如更像这样:

enter image description here

有没有办法使用bar()函数在Matplotlib中实现这个功能?

3 个答案:

答案 0 :(得分:28)

width=1.0作为关键字参数添加到bar()。例如。

xs.bar(bar_lefts, bar_heights, width=1.0, facecolor='black', edgecolor='black')

这将垂直填充条纹间隙。

答案 1 :(得分:0)

只需在条形数量上设置宽度 1,因此:

width = 1 / len(bar_lefts)
xs.bar(bar_lefts, bar_heights, width=width, color='black')

答案 2 :(得分:0)

这个问题已经过去 8 年了,matplotlib API 现在有内置方法来生成填充的、无间隙的条形:pyplot.step()pyplot.stairs(),参数为 fill=True .

请参阅 the docs 以获得更全面的比较,但主要区别在于 step() 使用 N x 和 N y 值定义步骤位置,就像 {{1} } 会,而 plot() 定义了具有 N 个高度和 N+1 条边的步骤位置,就像 stairs() 返回的那样。这是一个微妙的区别,我认为这两种工具都可以创建相同的输出。