Python matplotlib:指定图形大小时未释放内存

2024-04-03

我正在使用 matplotlib 生成许多数值模拟结果图。这些图用作视频中的帧,因此我通过重复调用与此类似的函数来生成其中的许多图:

from pylab import *

def plot_density(filename,i,t,psi_Na):  
    figure(figsize=(8,6))
    imshow(abs(psi_Na)**2,origin = 'lower')
    savefig(filename + '_%04d.png'%i)
    clf()

问题在于,每次调用此函数时,python 进程的内存使用量都会增加几兆字节。例如,如果我用这个循环调用它:

if __name__ == "__main__":
    x = linspace(-6e-6,6e-6,128,endpoint=False)
    y = linspace(-6e-6,6e-6,128,endpoint=False)
    X,Y = meshgrid(x,y)
    k = 1000000
    omega = 200
    times = linspace(0,100e-3,100,endpoint=False)
    for i,t in enumerate(times):
        psi_Na = sin(k*X-omega*t)
        plot_density('wavefunction',i,t,psi_Na)
        print i

然后内存使用量会随着时间增加到 600MB。但是如果我注释掉该行figure(figsize=(8,6))在函数定义中,RAM 使用量稳定在 52MB。(8,6)是默认的图形大小,因此两种情况都会生成相同的图像。我想在不耗尽内存的情况下根据我的数值数据制作不同大小的图。我如何强制 python 释放这些内存?

我试过了gc.collect()每个循环强制垃圾收集,我已经尝试过f = gcf()获取当前数字,然后del f想要删除它,但没有效果。

我在 64 位 Ubuntu 10.04 上运行 CPython 2.6.5。


来自文档字符串pylab.figure:

In [313]: pylab.figure?

如果您要创建许多人物,请制作 确保您明确调用“关闭” 您没有使用的数字,因为 这将使 pylab 能够正确地 清理内存。

所以也许可以尝试:

pylab.close()     # closes the current figure
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python matplotlib:指定图形大小时未释放内存 的相关文章

  • 将 Matplotlib 误差线放置在不位于条形中心的位置

    我正在 Matplotlib 中生成带有错误栏的堆积条形图 不幸的是 某些层相对较小且数据多样 因此多个层的错误条可能重叠 从而使它们难以或无法读取 Example 有没有办法设置每个误差条的位置 即沿 x 轴移动它 以便重叠的线显示在彼此
  • Python(Selenium):如何通过登录重定向/组织登录登录网站

    我不是专业程序员 所以请原谅任何愚蠢的错误 我正在做一些研究 我正在尝试使用 Selenium 登录数据库来搜索大约 1000 个术语 我有两个问题 1 重定向到组织登录页面后如何使用 Selenium 登录 2 如何检索数据库 在我解决
  • 使用带有关键字参数的 map() 函数

    这是我尝试使用的循环map功能于 volume ids 1 2 3 4 5 ip 172 12 13 122 for volume id in volume ids my function volume id ip ip 我有办法做到这一点
  • Python - StatsModels、OLS 置信区间

    在 Statsmodels 中 我可以使用以下方法拟合我的模型 import statsmodels api as sm X np array 22000 13400 47600 7400 12000 32000 28000 31000 6
  • 根据列值突出显示数据框中的行?

    假设我有这样的数据框 col1 col2 col3 col4 0 A A 1 pass 2 1 A A 2 pass 4 2 A A 1 fail 4 3 A A 1 fail 5 4 A A 1 pass 3 5 A A 2 fail 2
  • 是否可以忽略一行的pyright检查?

    我需要忽略一行的pyright 检查 有什么特别的评论吗 def create slog group SLogGroup data Optional dict None SLog insert one SLog group group da
  • 测试 python Counter 是否包含在另一个 Counter 中

    如何测试是否是pythonCounter https docs python org 2 library collections html collections Counter is 包含在另一个中使用以下定义 柜台a包含在计数器中b当且
  • OpenCV 无法从 MacBook Pro iSight 捕获

    几天后 我无法再从 opencv 应用程序内部打开我的 iSight 相机 cap cv2 VideoCapture 0 返回 并且cap isOpened 回报true 然而 cap grab 刚刚返回false 有任何想法吗 示例代码
  • 如何在ipywidget按钮中显示全文?

    我正在创建一个ipywidget带有一些文本的按钮 但按钮中未显示全文 我使用的代码如下 import ipywidgets as widgets from IPython display import display button wid
  • 在Python中获取文件描述符的位置

    比如说 我有一个原始数字文件描述符 我需要根据它获取文件中的当前位置 import os psutil some code that works with file lp lib open path to file p psutil Pro
  • IO 密集型任务中的 Python 多线程

    建议仅在 IO 密集型任务中使用 Python 多线程 因为 Python 有一个全局解释器锁 GIL 只允许一个线程持有 Python 解释器的控制权 然而 多线程对于 IO 密集型操作有意义吗 https stackoverflow c
  • 使用 \r 并打印一些文本后如何清除控制台中的一行?

    对于我当前的项目 有一些代码很慢并且我无法使其更快 为了获得一些关于已完成 必须完成多少的反馈 我创建了一个进度片段 您可以在下面看到 当你看到最后一行时 sys stdout write r100 80 n I use 80覆盖最终剩余的
  • Pandas:merge_asof() 对多行求和/不重复

    我正在处理两个数据集 每个数据集具有不同的关联日期 我想合并它们 但因为日期不完全匹配 我相信merge asof 是最好的方法 然而 有两件事发生merge asof 不理想的 数字重复 数字丢失 以下代码是一个示例 df a pd Da
  • Jupyter Notebook 内核一直很忙

    我已经安装了 anaconda 并且 python 在 Spyder IPython 等中工作正常 但是我无法运行 python 笔记本 内核被创建 它也连接 但它始终显示黑圈忙碌符号 防火墙或防病毒软件没有问题 我尝试过禁用两者 我也无法
  • 如何在seaborn displot中使用hist_kws

    我想在同一图中用不同的颜色绘制直方图和 kde 线 我想为直方图设置绿色 为 kde 线设置蓝色 我设法弄清楚使用 line kws 来更改 kde 线条颜色 但 hist kws 不适用于显示 我尝试过使用 histplot 但我无法为
  • 有没有办法检测正在运行的代码是否正在上下文管理器内执行?

    正如标题所述 有没有办法做到这样的事情 def call back if called inside context print running in context else print called outside context 这将
  • Scrapy:如何使用元在方法之间传递项目

    我是 scrapy 和 python 的新手 我试图将 parse quotes 中的项目 item author 传递给下一个解析方法 parse bio 我尝试了 request meta 和 response meta 方法 如 sc
  • 在 Qt 中自动调整标签文本大小 - 奇怪的行为

    在 Qt 中 我有一个复合小部件 它由排列在 QBoxLayouts 内的多个 QLabels 组成 当小部件调整大小时 我希望标签文本缩放以填充标签区域 并且我已经在 resizeEvent 中实现了文本大小的调整 这可行 但似乎发生了某
  • 如何使用 Pycharm 安装 tkinter? [复制]

    这个问题在这里已经有答案了 I used sudo apt get install python3 6 tk而且效果很好 如果我在终端中打开 python Tkinter 就可以工作 但我无法将其安装在我的 Pycharm 项目上 pip
  • 如何将输入读取为数字?

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 Why are x and y下面的代码中使用字符串而不是整数 注意 在Python 2

随机推荐

  • Java - dist 和deploy 文件夹之间的区别

    请原谅我提出一个新手问题 但是 dist 和 deploy 文件夹有什么区别 看起来像是同一件事 都包含文件的 jar 但是 当您清理并构建项目时 看起来只有 dist 文件夹被更新 部署文件夹如何更新 Thanks 我假设您使用的目录布局
  • toString 在 IE 中不起作用

    我在 javascript 中有一个类定义了 toString 方法 但是当我想在页面中打印它时 它总是打印 object object 在 IE 6 8 中 但它可以在 firefox 或 chrome 中工作 在下面的示例中它们都打印
  • 将数据从 Activity 发送到选项卡片段

    我的代码有一个小问题 我在这个网站上搜索但仍然没有找到最佳答案 我将把数据发送到我的选项卡片段 这是我的代码 我的活动课 public class MainActivity extends AppCompatActivity private
  • WCF 能否保持网络上的引用相等?

    假设您有几个类定义为 DataContract public class Foo DataMember public List
  • 向 UIStackView 添加点击手势

    我正在尝试添加一个UITapGesture to a UIStackView在 CollectionView 单元格中 但每次我执行应用程序都会崩溃 全部IBOutlets已连接 我在这里做错了什么 let fGuesture UITapG
  • 每5秒刷新一次表数据

    我目前正处于设计阶段 想知道如何每 5 秒更新一个表 我的表将显示从我的模型返回的只读数据 通常我的观点就是 table table HTML 然后是 foreach 循环来写出数据 然而 因为我想每 5 秒刷新一次整个表 所以我不确定如何
  • win32/C 线程生产者/消费者的阻塞队列

    我正在尝试用自定义队列替换一些线程通信 生产者当前正在使用 PostThreadMessage 消费者正在使用WaitForSingleObject PeekMessage http www justsoftwaresolutions co
  • 在 Windows 7 上配置 GitBash:ssh 失败,我正在尝试一切,快疯了

    我只是想通过 ssh 连接到 github 简直要疯了 我用的是Windows 7 老实说 穆加特罗伊德我一整天都在谷歌和论坛上浏览这件事 但没有突破 在我最近的尝试中 我将配置文件放在 C Users myname ssh 中 结果离幸福
  • Hyperledger Fabric Java SDK 使用 GRPCS 进行对等方和排序者连接

    我有一个 Spring Boot 项目 使用 Fabric java sdk 指向我在本地建立的 BYFN 网络 BYFN 网络没有 CA 容器 我正在尝试使用 grpcs 连接到对等点和排序者 因为我的本地 BYFN 网络上启用了 tls
  • 有没有办法让 cloudformation 查询可用区域以创建子网?

    我有一个 cloudformation 脚本 它尝试创建一个 VPC 每个可用区有一个子网 当我跑步时 aws ec2 describe availablity zones 我得到 4 个区域的返回 AvailabilityZones St
  • 网络音频合成:如何处理在启动或释放阶段更改滤波器截止值?

    我正在使用 WebAudio 构建 Roland Juno 106 合成器的仿真 实时 WIP 版本在这里 http stevegoldberg neocities org juno 如果截止频率或包络调制量在攻击或释放期间发生变化 而滤波
  • 张量流需要GPU吗

    我尝试按照以下说明在 Linux Ubuntu 18 10 上安装 TensorFlow https www tensorflow org install https www tensorflow org install 我正在使用 pyt
  • MapView 中的强制向下错误

    我想在单击按钮时打开地图 但不幸的是我的应用程序强制关闭 这是我的 logcat 01 31 18 11 49 465 VERBOSE InputDevice 2836 ID 0 0 0 Up 1 gt 0 01 31 18 11 49 6
  • 如何从流中读取特定数量的字节?

    我有一个结构体BufStream
  • “position:fixed”破坏了 CSS 网页中的下拉菜单

    我正在创建一个网页 当我将鼠标悬停在 Soccer部分 它将下拉并显示 Link1 Link2 Link3 如果没有position fixed 代码工作得很好 因为我希望标题位于网页顶部 所以我把position fixed 但一旦我穿上
  • SQL 查询 - 获取最新修订

    我将 T Sql 与 SQL Server 2008 一起使用 假设我有父表 项目 ProjectID ProjectNam 1 Test Project 1 2 Test Project 2 和子表项目修订 ProjectRevID Pr
  • C# 如何确定对象的大小?

    我有以下课程 public class MyClass public string Name get set public int Age get set public double Amount get set 当我尝试使用 WinDbg
  • Windows 上窗口系统的 win32 框架的替代方案

    我想用 C 开发一个不应依赖于 win32 库的自定义窗口系统 例如 Google Chrome 的界面与 Windows 自己的界面不相似 同样 MPCstar 和 adobe 产品也有自己的界面 请帮助我从哪里开始这个项目 您可以使用跨
  • Swift:如何仅更改 webView 中的 或图像大小

    我从服务器获取 HTML 并将其显示在 UIWebView 中 由于要求 未选择 缩放页面以适合 选项 UIWebView 的宽度等于屏幕宽度 高度根据内容而变化 HTML 中的图像标签包含一些内联样式 这些样式在 webView 的视图中
  • Python matplotlib:指定图形大小时未释放内存

    我正在使用 matplotlib 生成许多数值模拟结果图 这些图用作视频中的帧 因此我通过重复调用与此类似的函数来生成其中的许多图 from pylab import def plot density filename i t psi Na