[英]How to remove gaps between bars with unequal widths in Matplotlib bar chart
[英]How to remove gaps between bars in Matplotlib bar chart
我正在 Matplotlib 中制作條形圖,調用如下:
xs.bar(bar_lefts, bar_heights, facecolor='black', edgecolor='black')
我得到一個看起來像這樣的條形圖:
我想要的是連續條之間沒有白色間隙的,例如更像這樣:
有沒有辦法使用bar()
function 在 Matplotlib 中實現這一點?
將width=1.0
作為關鍵字參數添加到bar()
。 例如
xs.bar(bar_lefts, bar_heights, width=1.0, facecolor='black', edgecolor='black')
。
這將垂直填充條形間隙。
只需在條形數量上設置寬度 1,因此:
width = 1 / len(bar_lefts)
xs.bar(bar_lefts, bar_heights, width=width, color='black')
自從提出這個問題以來已經 8 年了,matplotlib API 現在有內置的方法來生成填充的、無間隙的條形: pyplot.step()
和pyplot.stairs()
,參數為fill=True
。
請參閱文檔以獲得更完整的比較,但主要區別在於step()
定義了 N x
和 N y
值的步驟位置,就像plot()
一樣,而stairs()
定義了 N 個高度和 N+1 的步驟位置邊緣,就像hist()
返回的那樣。 這是一個微妙的區別,我認為這兩種工具都可以創建相同的輸出。
您可以將寬度設置為等於兩個條之間的距離:
width = bar_lefts[-1] - bar_lefts[-2]
xs.bar(bar_lefts, bar_heights, width=width)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.