2011-05-29 73 views
4

我有100000个x/y点(高度超过距离)图表,高度为400px,宽度为600px。如何在小图上用很多点绘制图表

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

是否有一个图表控件,可以为我做缩放?

+0

是的,这是为大量数据设计的控件:http://dynamicdatadisplay.codeplex.com/wikipage?title=DynamicDataDisplay%20Silverlight&referringTitle=Home。你也可以看看其他免费版本的图表,比如visiblox。 – vorrtex 2011-05-30 22:47:41

回答

0

我通过将数据沿着x轴划分为像素段(在您的案例400中)做过一次。我会在每个集合中找到最大值和最小值,并在该x点绘制垂直线。这很简单,你会惊讶于结果。 只有在绘图区域内有更多数据点时才可以使用。无论如何,那是您需要优化的时候。

例如,在x偏移量233内,您有以下数据点。

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

这将导致在一个单一的垂直从点(233,35)吸引到(233,47)

0

我不知道,如果你发现了一个回答你的问题,但我开发了不输入数据(所以你只渲染的奈奎斯特采样控制线你可以看到)和立​​即模式渲染(所以你获得最佳性能)。其结果是,它可以在30FPS下平滑地渲染100,000 xy点。

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