簡體   English   中英

如何消除 Matplotlib 條形圖中條形之間的間隙

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM