如何在小图上绘制多点图表

时间:2011-05-29 09:58:04

标签: .net silverlight graph

我有100 000 x / y点(海拔高度)到图表,图表高度为400px,宽度为600px。

如何创建“估计”曲线,以便100 000个点看起来像一个图形而不是很多成束线?

是否有图表控件可以通过缩放为我执行此操作?

2 个答案:

答案 0 :(得分:0)

我通过沿x轴将数据划分为像素段(在您的情况下为400)来完成此操作。我会在每个集合中找到最大值和最小值,并在该x点上绘制一条垂直线。这很简单,你会对结果感到惊讶。 只有在绘图区域内有比x坐标更多的数据点时,它才有效。但无论如何,那是你需要优化的时候。

例如,在x offset 233中,您有以下数据点。

(1000202,40) (1000203,43) (1000204,47) (1000205,43) (1000206,38) (1000208,35)

这将导致从点(233,35)到(233,47)

绘制一条垂直线

答案 1 :(得分:0)

我不知道您是否找到了问题的答案,但我开发了一个控件,可以对输入数据进行奈奎斯特重采样(因此您只渲染您可以看到的内容)和立即模式渲染(这样您可以获得最佳性能) 。结果是,它可以在30FPS时平滑地渲染100,000 xy点。

Tormod提出的答案将适用于折线图 - 将输入数据分成容器并找到最小值/最大值,然后绘制它们,但是对于其他图表类型,您需要更高级的技术。您将看到的另一个效果是别名。为了解决这个问题,您可以a。)重新采样到更多的二进制位(例如2x pixelWidth,4x pixelWidth),b。)在绘制时使用抗锯齿或c。)使用重采样算法,在下采样之前对数据进行低通滤波。这些技术在数字信号处理中很常见,适用于2D绘图。