【问题标题】:Can't add legend in figure无法在图中添加图例
【发布时间】:2018-01-22 10:36:49
【问题描述】:

我想为我的人物添加一个图例,但它没有显示。在下面的代码中,“forecast_canvas”是在 Qt Designer 中创建的 Canvas 类的一个实例。

    ax = self.forecast_canvas.figure.add_subplot(111)
    ax.plot(self.new,'--',label='observed')

    ax.plot(data,color='green',label='Forecast')
    self.forecast_canvas.draw()

这是我画布的代码:

from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas 

import matplotlib.pyplot as plt from PyQt4 import QtGui 

class   Canvas(FigureCanvas):

     def __init__(self, parent=None):
         self.figure = plt.figure()     #plt.tight_layout(pad=4)
         FigureCanvas.__init__(self, self.figure)
         self.setParent(parent)
         FigureCanvas.setSizePolicy(self,
                                QtGui.QSizePolicy.Expanding,
                                QtGui.QSizePolicy.Expanding)
         FigureCanvas.updateGeometry(self)
         #plt.legend()

我尝试添加

plt.legend()

在 Canvas 类中,但它也不起作用。

【问题讨论】:

    标签: python qt canvas matplotlib qt-designer


    【解决方案1】:

    我认为你有两个问题:

    1. 您需要创建图之后添加图例。
    2. 您可能无法使用pyplot (plt.legend()),因为 pyplot 可能不承载任何图形。 (我在这里说“可能”,因为我不知道完整的代码)
      无论如何,将图例绘制到特定轴上会更安全;在这种情况下使用

      ax.legend()
      

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-05
      • 1970-01-01
      • 2020-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-23
      • 1970-01-01
      相关资源
      最近更新 更多