我一直在开发一个用于从串口读取连续数据的GUI。读取数据后,进行一些计算,并绘制和刷新结果(也称为动态绘图)。为此,我使用matplotlib中提供的wx后端。为了做到这一点,我基本上使用一个数组来存储我的结果,在每次计算之后,我都会将其追加到数组中,并重新绘制整个图形。为了让它变得“动态”,我只是为每次迭代设置了x轴的下限和上限。类似于以下位置的内容:
http://eli.thegreenplace.net/2008/08/01/matplotlib-with-wxpython-guis/
然而,问题是,由于数据是连续的,如果我继续绘制它,最终系统内存将耗尽,系统将崩溃。有没有其他方法可以连续绘制我的结果?
发布于 2009-07-25 07:01:02
为此,我基本上使用一个数组来存储我的结果,在这个数组中,我不断地将它追加到
尝试限制此数组的大小,方法是删除旧数据或删除第n个条目(屏幕分辨率将阻止显示所有条目)。我假设您将所有数据写入磁盘,这样就不会丢失任何数据。
另外,分析你的代码是否有内存泄漏。你使用的和不再需要的东西,但不会被垃圾收集,因为你仍然有对它的引用。
发布于 2009-07-25 12:00:37
我已经用pythons Tkinter创建了这样一个组件。来源是here。
基本上,您必须将绘制的数据保存在某个地方。您不能在内存中保留无限数量的数据点,因此您必须将其保存到磁盘或覆盖旧数据点。
发布于 2009-07-25 12:23:41
数据和数据的表示是两码事。如果数据是稍后要分析的重要数据,您可能希望将数据存储到磁盘,但只保留固定的时间段或最后N个点用于显示。您甚至可以让用户选择要显示的时间范围。
https://stackoverflow.com/questions/1181391
复制相似问题