1

可能重复:
用 Python 绘图

我一直在使用 Matprolib 进行绘图。我发现它非常有用,但我不知道如何使用 'fill_between()' 函数。我已经尝试过多次修复它,但我无法直截了当。

我一直在研究几个教程,但我还没有找到非常有用的教程(根据我的任务)。

我的任务是填充所有线条共有的区域,就像这样:

应该做什么

这就是系统所做的:

应该做什么

有什么办法吗?任何人都知道如何以正确的方式使用“fill_between()”吗?

4

1 回答 1

2

您可以使用该where选项。如示例中所示,您可以执行以下操作:

fill_between(x, myzero, y1, where=y2>=y1, facecolor='blue', interpolate=True)

其中 y2 是有时在顶部的线。不过,您必须对每一行都执行此操作。

另一种选择是定义最少的函数并在其下方填充,尽管您需要事先知道 ys 是在相同点定义的,或者使用插值使它们都在相同点定义。

mymin = np.minimum(y1,y2,y3)
fill_between(x, myzero, mymin)

希望有帮助。

编辑:要从所有为相同 x 值定义的几个函数中找到最小值,您可以使用以下命令:

def OverallMinimum(*ys):
    mymin = y[0].copy()
    for y in ys:
        min = np.minimum(mymin,y)
    return mymin

然后您可以使用fill_between上面的第二个在该函数的零和最小值之间绘制。

于 2012-05-19T16:49:25.070 回答