簡體   English   中英

PyQtGraph:傳說不起作用

[英]PyQtGraph: legend does not work

我正在使用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()

這是情節的圖像:

在此輸入圖像描述

關於問題1,應在plot.plot(x,y,name)命令之前添加plot.addLegend()

關於問題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

我希望這就是你要找的東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM