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

如何在Matplotlib中隐藏自定义标记后方的折线避免二者重叠?

问题原因

出现该问题是因为Matplotlib默认配置中,折线的图层优先级(zorder默认值)高于散点标记,即使先绘制折线、后绘制散点,折线依然会显示在散点上方,穿过标记。

解决方法

通过zorder参数显式控制图层顺序即可:zorder数值越大,元素层级越靠前,将散点标记的zorder设置为比折线更高的数值即可让标记覆盖在折线之上。

修改后的参考代码:

import matplotlib.pyplot as plt

values = [i for i in range(3)]
# 折线设置较低的zorder
plt.plot(values, values, label="line", zorder=2)
# 散点设置更高的zorder,确保显示在上方
plt.scatter(values, values, marker=u"$\u2299$", s=500, label="marker", zorder=3)
plt.legend()
plt.show()

如果仍能看到折线从标记中心的小圆点缝隙透出,可以额外给散点添加和画布背景同色的边缘,进一步遮挡下层折线:

plt.scatter(values, values, marker=u"$\u2299$", s=500, label="marker", zorder=3, 
            linewidth=4, edgecolor='white')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 06:45:04