我正在测量一些系统性能数据并将其存储在数据库中。从这些数据点中,我绘制了随时间变化的折线图。由于这些数据点本质上有点嘈杂,即每个点都偏离局部平均值至少一点。当直接从一个点到下一个点绘制折线图时,会产生不规则的图形。在大时间尺度上,如每像素> 10个数据点,此噪声被压缩为宽约20px的不规则线区域,而不是较小比例尺下的1px。
我已经阅读了关于线条平滑、反锯齿、简化等方面的内容。但我找到的所有东西似乎都与我的需求无关。
我不需要反锯齿,.NET在屏幕上绘制线条时已经完成了这项工作。
我不想要简化。我需要极端值保持可见,至少大多数情况下是这样。
我认为这是样条曲线的方向,但我找不到太多示例图像来评估所描述的是否就是我想要的。我确实在谷歌图书中找到了一本高度科学的书,里面充满了半页长的公式,但我现在不想读完它......
举个例子,只需看一下Linux / Gnome的系统监视器应用程序。它使用平滑线绘制最近的CPU / memory / network使用情况。这可能有点过于简化,但我会尝试一下,看看是否可以对其进行调整。
我更喜欢C#代码,但其他语言的算法或代码也可以,只要我可以将其移植到C#中而不需要外部引用即可。
我已经阅读了关于线条平滑、反锯齿、简化等方面的内容。但我找到的所有东西似乎都与我的需求无关。
我不需要反锯齿,.NET在屏幕上绘制线条时已经完成了这项工作。
我不想要简化。我需要极端值保持可见,至少大多数情况下是这样。
我认为这是样条曲线的方向,但我找不到太多示例图像来评估所描述的是否就是我想要的。我确实在谷歌图书中找到了一本高度科学的书,里面充满了半页长的公式,但我现在不想读完它......
举个例子,只需看一下Linux / Gnome的系统监视器应用程序。它使用平滑线绘制最近的CPU / memory / network使用情况。这可能有点过于简化,但我会尝试一下,看看是否可以对其进行调整。
我更喜欢C#代码,但其他语言的算法或代码也可以,只要我可以将其移植到C#中而不需要外部引用即可。