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

Matplotlib中如何将绘制的矩形置于数据图层上方?

解决Matplotlib矩形被数据线条遮挡的问题

嘿,这个问题我之前也碰到过!原因其实是Matplotlib里不同元素的默认绘制层级(zorder)不一样——plot()生成的线条默认zorder是2,而patches.Rectangle的默认zorder只有1,所以不管你先添加矩形还是先绘制数据,线条都会盖在矩形上面。

解决方法很简单,只需要在创建矩形的时候指定一个更高的zorder参数就行,比如设成3:

import matplotlib.patches as patches
import matplotlib.pyplot as plt

# 假设你的signal和fit变量已经提前定义好
fig = plt.figure()
ax = fig.add_axes([0,0,1,1])

# 添加矩形时设置更高的zorder,让它显示在最上层
ax.add_patch(
    patches.Rectangle(
        (776820, 5000), # 矩形左下角坐标(x,y)
        3000,           # 矩形宽度
        3500,           # 矩形高度
        fill=False,
        zorder=3  # 关键参数:提升矩形的绘制层级
    )
)

ax.plot(signal)
ax.plot(fit)
plt.show()

顺便补充个小知识:Matplotlib的zorder数值越大,元素就越靠上显示。常见元素的默认zorder大概是这样的:

  • 图像(images):0
  • 补丁(patches):1
  • 线条(lines):2
  • 文本(text):3
    所以只要把矩形的zorder设得比线条的默认值2大,就能让它稳稳地显示在数据线条上面啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:42:14