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

如何解决pyqtgraph绘制白底图例时网格线覆盖图例的问题

pyqtgraph 图例被网格线覆盖问题修复

问题场景

使用如下代码在pyqtgraph中添加图例:

import pyqtgraph as pg

pen_blue = pg.mkPen(cosmetic=True, width=2, color=color_blue)
style = pg.PlotDataItem(pen=pen_blue)
self.legend = self.plotitem.addLegend()
self.legend.setPen("k")
self.legend.setBrush(1.0)
self.legend.addItem(style, " Designed filter")

实际渲染时,图表网格线会显示在图例的画刷层上方,遮挡图例内容。

根因

pyqtgraph的元素渲染顺序由Z值控制,Z值越高的元素越晚绘制,显示层级越靠上。默认添加的图例Z值低于网格线的Z值,因此会被网格覆盖。

修复方案

在图例初始化代码后新增一行,手动设置更高的Z值即可:

self.legend.setZValue(100)

修改后的完整代码:

import pyqtgraph as pg

pen_blue = pg.mkPen(cosmetic=True, width=2, color=color_blue)
style = pg.PlotDataItem(pen=pen_blue)
self.legend = self.plotitem.addLegend()
self.legend.setPen("k")
self.legend.setBrush(1.0)
# 提升图例渲染层级,避免被网格、曲线遮挡
self.legend.setZValue(100)
self.legend.addItem(style, " Designed filter")

Z值无需固定为100,只要数值大于网格、绘图曲线的默认Z值(通常小于10)即可生效。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 04:36:26