簡體   English   中英

當數據為負數時,Fill_between Matplotlib

[英]Fill_between Matplotlib when data is negative

假設我有一個這樣的df

df = pd.DataFrame({'A': [-50,-44,-39,-35,-32,-30,-29,-28,-27,-26],
                  'B': [-46,-49,-52,-53,-52,-49,-46,-44,-43,-42]})

我只是想做的是在使用 Matplotlib 繪制A列和B列下方的區域時填充它們。 我知道函數fill_between並且以下代碼可以正常工作,如果數據為正值:

plt.plot(z.index, z['A'], color='red')
plt.plot(z.index, z['B'], color='blue')
plt.fill_between(x=z.index,y1=z['A'], color='red', alpha=0.25)
plt.fill_between(x=z.index,y1=z['B'], color='blue', alpha=0.25)

然而,由於數據為負,在這種情況下,上面的代碼填充了繪制線上方的區域。 我只是想讓填充區域位於數據下方,無論它是正數還是負數,因為我正在處理的實際數據可以是/或,並且通常有時會以 0 為中心,即一半的數據可能是正數另一半陰性。

誰能建議如何讓它在下面填寫? 干杯

fill_between的默認y2參數默認為 0。 如果你想有下面的填充,你可以將它y2更改為 y 軸的最小值:

z = pd.DataFrame({'A': [-50,-44,-39,-35,-32,-30,-29,-28,-27,-26],
                  'B': [-46,-49,-52,-53,-52,-49,-46,-44,-43,-42]})

plt.plot(z.index, z['A'], color='red')
plt.plot(z.index, z['B'], color='blue')

ymin = plt.gca().get_ylim()[0]

plt.fill_between(x=z.index,y1=z['A'], y2=ymin, color='red', alpha=0.25)
plt.fill_between(x=z.index,y1=z['B'], y2=ymin,  color='blue', alpha=0.25)

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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