【问题标题】:How to avoid excessive memory usage when plotting in a loop with Python and matplotlib使用 Python 和 matplotlib 在循环中绘图时如何避免过多的内存使用
【发布时间】:2021-04-26 19:08:41
【问题描述】:

我有一个 Python 程序,它从测量仪器获取数据并使用 matplotlib 绘制数据(我在 Debian Linux 上)。绘图是在一个单独的线程中完成的,它以固定的时间间隔更新数据图。每次更新时,从图中删除现有线条,然后使用新数据重新创建线条(是的,可能有更有效的方法,但不可能只将新数据添加到我的现有线条中情况)。

一段时间后,程序会占用大量内存(千兆字节)。如果我修改代码以跳过绘图/matplotlib 部分,则不会发生这种情况,因此大量内存的使用显然与 matplotlib 有关。如果我通过运行另一个会消耗大量内存的应用程序给系统施加压力,我的 Python 程序将在某个时候开始释放 matplotlib 使用的过多内存(最终大约 50 MB 左右),释放内存似乎对我的程序运行没有任何负面影响。这告诉我,matplotlib 使用的大量内存在我的应用程序中并不重要(如果不是无用的话)。

如何避免 matplotlib 占用这么多内存?

【问题讨论】:

  • 我通过添加一个显示效果的代码示例来编辑我的问题,但由于某种原因它没有显示出来。啊啊!

标签: python python-3.x matplotlib memory


【解决方案1】:

不确定这是否会有所帮助,但您是否尝试过使用line-collections? 一次绘制大量线条应该更有效

...除此之外,显示您正在做什么的一些代码行可能有助于识别问题

【讨论】:

  • 我在原始问题中添加了一个代码示例。
猜你喜欢
  • 1970-01-01
  • 2017-12-22
  • 1970-01-01
  • 2012-08-06
相关资源
最近更新 更多