MatplotlibDepricationWarning с PyQt5 учебник - PullRequest
0 голосов
/ 26 октября 2018

Я попробовал учебники PyQt5 с этим сайтом .

На этом сайте есть пример кода, который импортирует matplotlib.
Я попробовал этот код, затем я мог получить окно PyQt. На этом сайте тоже самое.
Но я получаю следующее предупреждение.

MatplotlibDeprecationWarning: Adding an axes using the same arguments as a previous axes currently reuses the earlier instance. In a future version, a new instance will always be created and returned. Meanwhile, this warning can be suppressed, and the future behavior ensured, by passing a unique label to each axes instance.warnings.warn(message, mplDeprecation, stacklevel=1)

Вот код, связанный с matplotlib с сайта.

class PlotCanvas(FigureCanvas):

    def __init__(self, parent=None, width=5, height=4, dpi=100):
        fig = Figure(figsize=(width, height), dpi=dpi)
        self.axes = fig.add_subplot(111)

        FigureCanvas.__init__(self, fig)
        self.setParent(parent)

        FigureCanvas.setSizePolicy(self,
                QSizePolicy.Expanding,
                QSizePolicy.Expanding)
        FigureCanvas.updateGeometry(self)
        self.plot()


    def plot(self):
        data = [random.random() for i in range(25)]
        ax = self.figure.add_subplot(111)
        ax.plot(data, 'r-')
        ax.set_title('PyQt Matplotlib Example')
        self.draw()

Почему возникает это предупреждение?

Ответы [ 2 ]

0 голосов
/ 28 октября 2018

Я удалил строку ax = self.figure.add_subplot(111),

и заменил атрибут ax на self.axes.

Это устранило предупреждение!

0 голосов
/ 26 октября 2018

Вы создаете два экземпляра осей:

self.axes = fig.add_subplot(111) 

, который создается в момент, когда вы создаете объект класса. Второе существо

ax = self.figure.add_subplot(111)

, который создается при использовании объекта класса для вызова метода plot. Скорее всего по этой причине вы получаете это предупреждение. Кроме того, я считаю, что следующая строка в вашем plot методе

self.figure.add_subplot(111)

следует записать как (используя self.fig)

self.fig.add_subplot(111)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...