首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MatplotlibDepricationWarning与PyQt5教程

MatplotlibDepricationWarning与PyQt5教程
EN

Stack Overflow用户
提问于 2018-10-26 09:20:29
回答 2查看 142关注 0票数 0

我尝试了PyQt5教程和本站

在这个站点中,有一个导入matplotlib的示例代码。

我尝试了这段代码,然后我就可以得到PyQt窗口了。在那个地方也是一样的。

但我收到了警告。

代码语言:javascript
复制
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相关的代码。

代码语言:javascript
复制
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()

为什么会出现这种警告?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-10-28 10:38:37

我删除了ax = self.figure.add_subplot(111)

并将属性ax替换为self.axes

这解决了警告!

票数 0
EN

Stack Overflow用户

发布于 2018-10-26 10:22:16

您正在创建两个轴实例:

代码语言:javascript
复制
self.axes = fig.add_subplot(111) 

它是在创建类对象时创建的。第二个存在

代码语言:javascript
复制
ax = self.figure.add_subplot(111)

它是在使用类对象调用plot方法时创建的。很可能是因为这个原因,你会收到这个警告。另外,我相信plot方法中的下面一行

代码语言:javascript
复制
self.figure.add_subplot(111)

应该编写为(使用self.fig)

代码语言:javascript
复制
self.fig.add_subplot(111)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53005496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档