algorithm - 绘制具有较大值但值变化较小的图形

标签 algorithm graphics graph plot

我正在尝试绘制一个图表来描述进程的内存消耗与时间的关系。在 SO 的帮助下,我能够使用 Qt 获取消耗的内存并绘制图形。为了展示内存中的微小变化,我以字节为单位缩放 Y 轴。

我的问题是,通常消耗的内存是要在我的图表中展示的一个非常大的值,并且它会超出可见区域。

我学习here我如何使用对数刻度来避免这个问题。但这会导致另一个问题:

一段时间后,通常进程会随着内存初始化稳定下来,与此进程消耗的总内存相比,内存消耗的任何进一步变化都是非常小的值。因此,由于我用于缩放的日志,这些更改在我的图表上并不真正可见。但我的主要目的是以图形格式展示总内存消耗的这种变化。

我的方法是错误的还是有更好的方法来实现这一目标?

在 Qt/C++/qml 中实现,但最欢迎通用的想法。

例如。

时间:0 秒 | 消耗:0 字节

时间:1 秒 | 消耗:1212120 字节

时间:2 秒 | 消耗:1212520 字节

时间:3 秒 | 消耗:1212720 字节

.. 消费在这个时候稳定下来 -- 现在只有小的变化 --

时间:20 秒 | 消耗:1212890 字节

时间:21 秒 | 消耗:1212893 字节

时间:22 秒 | 消耗:1212895 字节

最佳答案

  • 分数幂(如平方根)可能是一个考虑因素,而不是对数。

  • 忽略第一个值。如果时间 0 的值始终为 0,则可以考虑忽略它。它显着抵消了您的数据集。那么图表上的 y-min 可以是 1212120,看起来会更好:

    Graph

  • 显示变化(时间 x 的值 - 时间 x-1 的值)而不是实际值(时间 x 的值)可能也是一个好主意。

关于algorithm - 绘制具有较大值但值变化较小的图形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14959408/

相关文章:

Python - 从不断变化的文本文件更新实时图形

c# 任何很酷的图形库来绘制性能数据?

c++ - 递归打印 n, n-1, n-2,...3,2,1,2,3,...n

arrays - 杂耍算法时间复杂度

algorithm - BFS与拓扑排序的关系

javascript - HTML5 Canvas 位图

c++ - C++ 的 3D 图形绘图

c - 大量 - 有缺陷的数字代码不显示结果

java - 处理与 JavaFx 与 Griffon 的比较

c++ - 使用 QListWidgetItem 类更改文本大小