【问题标题】:PyQtGraph: legend does not workPyQtGraph:图例不起作用
【发布时间】:2018-05-26 19:05:53
【问题描述】:

我将 PyQtGraph 0.10 与 Py3.6 一起使用,但在使用以下代码时遇到了问题。
我有两个问题:

1) 五个图上的addLegend() 只显示一个空的小框,并且

2) showLabel(show=False) 命令被忽略(我只想要底部图上的标签)。

self.win   = pg.GraphicsWindow()
self.win.clear()
for figIdx, devid in enumerate(self.norm_data.keys()):
    plot = self.win.addPlot()
    plot.plot(x=self.norm_time[devid],       y=self.norm_data[devid]      , name=devid         , pen=pg.mkPen('b', width=2), connect="finite")
    plot.plot(x=self.pkt_starts[devid].time, y=self.pkt_starts[devid].data, name="Packet start", pen=None, symbol='x' ,symbolSize=8, symbolPen="c")
    plot.plot(x=self.bad_gaps  [devid].time, y=self.bad_gaps  [devid].data, name="Seq gap"     , pen='r' , symbol=None, connect="finite")
    plot.addLegend()                   # Try to add legend
    plot.setLabel('left', "Data")
    plot.setRange(yRange=[0, 5])
    plot.setRange(xRange=[0, self.time_end])
    lr = pg.LinearRegionItem([5, 10])  # This is a mouse-draggable window on the plot
    lr.setZValue(-10)
    lr.sigRegionChanged.connect(updateRegion)
    self.region_list.append(lr)
    plot.addItem(lr)
    plot.showLabel('bottom',show=False)          # Try to turn of bottom label
    plot.getAxis('bottom').showLabel(show=False) # try again
    self.win.nextRow()

# callback for the linear region item on the plot
def updateRegion(regionItem):
    self.region_low, self.region_high = regionItem.getRegion()

这是剧情的图片:

【问题讨论】:

    标签: python python-3.x pyqtgraph


    【解决方案1】:

    关于问题 1,plot.addLegend() 应在 plot.plot(x,y,name) 命令之前添加

    关于问题 2,您正在清除所有地块的底部标签。如果要显示最后一个图的底部标签,请执行以下操作:

    if (figIdx != len(self.norm_data.keys())): 
        plot.showLabel('bottom',show=False) # For all other plots remove the label
    else:
        plot.showLabel('bottom',show=True) # fOR THE LAST PLOT show THE BOTTOM LABEL
    

    我希望这就是你要找的。​​p>

    【讨论】:

    • 关于 1:是的,您的更正已解决。 addLegend() 必须在 plot 命令之前添加。
    • 关于 2:我现在意识到“标签”不是指“轴编号标签”而是指标签描述符。那么如何删除轴号呢?
    • 好的。知道了。而不是 showLabels(show=False),我需要 plot.getAxis('bottom').setStyle(showValues=False)。这关闭了轴编号。
    • 如果这有帮助,请投票/接受答案。谢谢!
    • 关于addLegend()出现在情节之前,这个信息似乎是not part of the documentation,所以你的回答很有帮助。
    猜你喜欢
    • 2021-10-15
    • 2017-11-25
    • 2023-03-15
    • 2021-07-18
    • 2012-08-12
    • 2020-02-04
    • 1970-01-01
    • 2013-05-17
    • 2014-03-12
    相关资源
    最近更新 更多