pyqtgraph:为绘图中的线条添加图例

Posted

技术标签:

【中文标题】pyqtgraph:为绘图中的线条添加图例【英文标题】:pyqtgraph: add legend for lines in a plot 【发布时间】:2013-05-17 21:03:05 【问题描述】:

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

我得到的结果是:

如何添加适当的图例项?

【问题讨论】:

【参考方案1】:

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

c3 = plt.plot (y=4, pen='y', name="maximum value")

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

【讨论】:

之前致电plt.addLegend()谢谢,我差点错过了:)【参考方案2】:

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

style = pg.PlotDataItem(pen='y')
plt.plotItem.legend.addItem(l, "maximum value")

【讨论】:

以上是关于pyqtgraph:为绘图中的线条添加图例的主要内容,如果未能解决你的问题,请参考以下文章

pyqtgraph删除pyqt4 gui中的持久图例

绘图图例显示未知项目/相同的图例项目以不同的线条显示两次

R中的绘图函数产生图例而不调用legend()

Pyqtgraph 绘图很慢

pyqtgraph 动态绘图:添加行以打开 GUI

在 Matlab 中具有正确图例的类似 Excel 的平滑绘图