簡體   English   中英

matplotlib fill_between 具有離散的 x 值並且參數產生間隙

[英]matplotlib fill_between with discrete x-values and where parameter produces gaps

我正在嘗試創建一個區域 plot 填充根據 y 值變化。 使用fill_betweenwhere參數最有效,但會留下未填充的區域:

import numpy as np
import matplotlib.pyplot as plt

x=np.arange(1,10)
y=np.array([1,4,6,8,4,7,5,6,0])

plt.plot(x, y, color='black')
plt.fill_between(x, y, where=y < 5, color='red')
plt.fill_between(x, y, where=y >= 5, color='blue')

plt.show()

在飾品上運行。io

產生這個結果: Plot 沒有插值

如何去除圖表下方的任何白色區域? 對於當前的“中間”區域應該如何着色,我沒有嚴格的要求。 在中點會面——或兩者兼而有之——都行。

添加interpolate=True在某些方面稍微改善了這種情況,但在其他方面它看起來更混亂: Plot with interpolation

我已經查看了step參數,但這對我來說似乎並不樂觀。

由於您的要求很簡單,因此最好的方法可能是確定您的“默認”顏色並將其用作整個曲線的 fill_between 而不指定任何條件。 最重要的是,您可以針對不同的條件添加不同的 colors。 就像是:

fig, ax = plt.subplots()

ax.fill_between(x, y, color="blue")
ax.fill_between(x, y, where=y<=5, color="red")

這給出了以下 output:

在此處輸入圖像描述

暫無
暫無

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

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