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