如何解决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
相关产品推荐
相关产品推荐

