【发布时间】:2010-12-08 15:00:47
【问题描述】:
我正在测量一些系统性能数据以将其存储在数据库中。从这些数据点,我随着时间的推移绘制折线图。从本质上讲,这些数据点有点嘈杂,即。每个点都至少偏离局部平均值。当从一个点直接绘制线图到下一个点时,它会产生锯齿状的图形。在像每个像素 > 10 个数据点这样的大时间尺度上,这种噪声被压缩成一个宽的锯齿线区域,也就是说,20 像素高,而不是较小尺度的 1 像素。
我已经阅读了有关线条平滑、抗锯齿、简化和所有这些内容的信息。但我发现的一切似乎都与其他东西有关。
我不需要抗锯齿,.NET 在屏幕上画线时已经为我做了。
我不想简化。我需要让极端值保持可见,至少其中大部分是可见的。
我认为它是样条曲线的方向,但我找不到太多示例图像来评估所描述的东西是否是我想要的。不过,我确实在 Google Books 上找到了一本非常科学的书,里面全是半页长的公式,我现在不想读...
举个例子,看看 Linux/Gnome 的系统监视器应用程序。我用平滑线绘制了最近的 CPU/内存/网络使用情况。这可能有点过于简单,但我会尝试一下,看看我是否可以调整它。
我更喜欢 C# 代码,但算法或其他语言的代码也可以,只要我可以将其移植到 C# 而不需要外部引用。
【问题讨论】:
-
你知道windows(和.net)有一个内置的性能计数器系统吗?我只是想确保您没有重新发明轮子(并不是说它们一定适用于您的情况)。
-
我的数据是在 Linux 服务器上收集的,由许多不同的来源组成,我还有其他代码。数据应可视化,以便在 Mono 运行时下的桌面(交互式)或 Web 应用程序或可能的电子邮件报告中使用。在 Windows 上使用 Visual Studio 完成开发。
标签: c# graph line smooth curve