我正在使用这样的调用在Matplotlib制作条形图:
xs.bar(bar_lefts, bar_heights, facecolor='black', edgecolor='black')
我得到一个如下所示的条形图:
我想要的是在连续的条之间没有白色间隙,例如更像这样:
有没有办法使用bar()
函数在Matplotlib中实现这个功能?
答案 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()
返回的那样。这是一个微妙的区别,我认为这两种工具都可以创建相同的输出。