You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过填充操作正确遮挡Matplotlib中多个重叠的绘图?

要实现你要的遮挡效果,只需要按层级规则设置zorder参数即可,需满足两个逻辑:

  1. 同一条曲线的线条层级要高于自身的填充区域,避免线条被自己的填充挡住
  2. 位置越高的曲线整体层级越高,保证上层的填充可以完全遮挡下层的所有绘图内容

修改后的代码如下:

import numpy as np
import matplotlib.pyplot as plt


def gaussian(x, mu, sig):
    return np.exp(-(x - mu)*(x - mu) / (2 * sig*sig))


mus = [4, 3, 2, 1, 0, -1, -2, -3, -4]
x = np.linspace(-10, 10, 500)

for i in range(len(mus) - 1, -1, -1):
    mu = mus[i]
    y = gaussian(x, mu, 1) + i * 0.1
    plt.plot(x, y, zorder=2*i + 2)
    plt.fill_between(x, y, 0, color="lightgray", zorder=2*i +1)

plt.show()

内容的提问来源于stack exchange,提问作者masher

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 06:15:04