pyqtgraph:为图中的线添加图例

Mik*_*eyB 5 python pyqtgraph

我正在使用pyqtgraph,我想在InfiniteLines的图例中添加一个项目.

我已经调整了示例代码来演示:

# -*- coding: utf-8 -*-
"""
Demonstrates basic use of LegendItem

"""
import initExample ## Add path to library (just for examples; you do not need this)

import pyqtgraph as pg
from pyqtgraph.Qt import QtCore, QtGui

plt = pg.plot()
plt.setWindowTitle('pyqtgraph example: Legend')
plt.addLegend()

c1 = plt.plot([1,3,2,4], pen='r', name='red plot')
c2 = plt.plot([2,1,4,3], pen='g', fillLevel=0, fillBrush=(255,255,255,30), name='green plot')
c3 = plt.addLine(y=4, pen='y')
# TODO: add legend item indicating "maximum value"

## Start Qt event loop unless running in interactive mode or using pyside.
if __name__ == '__main__':
    import sys
    if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'):
        QtGui.QApplication.instance().exec_()
Run Code Online (Sandbox Code Playgroud)

我得到的结果是: 情节图像

如何添加适当的图例项?

小智 8

如果使用"name"参数创建项目,pyqtgraph会自动将该项添加到图例中.上述代码中唯一需要的调整如下:

c3 = plt.plot (y=4, pen='y', name="maximum value")
Run Code Online (Sandbox Code Playgroud)

只要为pyqtgraph提供曲线名称,它就会自动创建相应的图例项.尽管plt.addLegend()在创建曲线之前调用它是很重要的.

  • **之前调用 `plt.addLegend()` **谢谢,我差点错过了:) (2认同)

Luk*_*uke 7

对于此示例,您可以使用正确的颜色创建一个空的PlotDataItem,并将其添加到图例中,如下所示:

style = pg.PlotDataItem(pen='y')
plt.plotItem.legend.addItem(l, "maximum value")
Run Code Online (Sandbox Code Playgroud)