当前位置: 首页 > 面试题库 >

警告有太多未结数字

秋阳荣
2023-03-14
问题内容

在我使用创建大量图形的脚本中fix, ax = plt.subplots(...),我收到警告 RuntimeWarning:已打开20个以上图形。
通过pyplot接口(matplotlib.pyplot.figure)创建的图形将保留到显式关闭,并且可能会占用过多内存。

但是,我不明白 为什么 会收到此警告,因为用保存了该数字之后fig.savefig(...),我用了将其删除fig.clear(); del fig。在我的代码中,我一次都没有打开多个图形。不过,我仍然收到有关太多未结数字的警告。这是什么意思/如何避免收到警告?


问题答案:

在图形对象上使用.clf.cla,而不要创建一个
图形。来自@DavidZwicker

假设您已导入pyplot

import matplotlib.pyplot as plt

plt.cla()清除轴,即当前图形中的当前活动轴。它使其他轴保持不变。

plt.clf()清除所有轴的整个当前图形,但使窗口保持打开状态,以便可以将其重新用于其他图形。

plt.close()关闭一个window,如果没有另外指定,它将是当前窗口。plt.close('all')将关闭所有未结数字。

之所以del fig不起作用,是因为pyplot状态机一直在参考周围的图形(因为要知道“当前图形”是什么,就必须这样做)。这意味着即使您删除对该图
引用,也至少有一个活动引用,因此将永远不会进行垃圾回收。

由于我在这里就此答案轮询集体智慧,因此@JoeKington在评论中提到plt.close(fig)将从pylab状态机(plt._pylab_helpers.Gcf)中删除特定的图形实例,并允许对其进行垃圾回收。



 类似资料:
  • 当我将函数应用于Groupby对象的多个列时,Pandas会抛出一个Future Warning。它建议使用列表作为索引,而不是元组。一个人会怎么做?

  • 我有一个关于c语言中的空结构的问题,就我阅读标准所知,它们似乎是不被允许的: 6.2.5-20 — 结构类型描述按顺序分配的非空成员对象集(在某些情况下,还包括不完整的数组),每个成员对象都有一个可选的指定名称和可能不同的类型。 因此,当尝试编译类似以下内容时,这并不奇怪: 在MS VS中,抛出了一些错误: 错误C2016: C要求结构或联合至少有一个成员 但是,当使用编译相同的代码时,没有发现错

  • 问题内容: 我有以下错误: 警告:preg_replace():第38行上xxx.php中的未知修饰符’]’ 这是第38行的代码: 我该如何解决这个问题? 问题答案: 为什么会发生错误 在PHP中,正则表达式需要包含在一对定界符内。分隔符可以是任何非字母数字,非反斜杠,非空格字符;,,是最常用的。需要注意的是,还可以使用支架风格分隔符在打开和关闭括号开始和结束的分隔符,即,等等都是有效的。 在以下

  • 云联壹云平台支持对宿主机、虚拟机、云账号等资源的相关指标进行监控告警,告警消息支持通过机器人、邮件、短信、飞书、钉钉、企业微信等通知渠道发送给用户。 告警策略 告警策略即针对监控指标设置阈值,当资源的指标超过阈值时,将会立即通过通知渠道向用户发送告警消息,使用户可以快速响应解决问题。 告警历史 告警历史显示系统中所有的触发告警以及恢复告警的告警策略和资源信息。 告警资源 告警资源即宿主机、云账号等

  • 我正在使用python处理一些图像,并尝试将一系列大小为961x509的图像转换为MP4电影文件。我已经这样做了,它正在工作,但我有一个相当恼人的问题,警告说这样的话: 警告:根:图像FFMPEG_WRITER警告:输入图像不能被macro_block_size=16整除,大小从(509L,961L)到(512L,976L),以确保与大多数编解码器和播放器的视频兼容性。若要防止调整大小,请使输入图