高密度Silverlight图表控件

时间:2010-04-09 06:31:11

标签: silverlight charts

我一直在研究Silverlight图表控件,以显示大量样本,(五个单独系列中约10,000个数据点 - 全部~50k点)。

我发现Dundas,Visifire,Microsoft等现有的选项在显示超过几百个数据点时表现极差。

我认为现有图表控件的性能问题是由于矢量图形的大量使用造成的。 Ergo一个解决方案是客户端图表控件,它使用WritableBitmap类生成栅格图表。

在我堕落太久之前重新发明兔子洞 - 有没有人找到第三方或OSS控件来管理迷你线上的大量数据点

8 个答案:

答案 0 :(得分:7)

查看Visiblox(http://www.visiblox.com/)图表。我正在制作一个遥测应用程序,它在同一个Silverlight组件中使用了三个图表,总计约36,000个点,并且在性能方面几乎没有任何减速,如果有的话。

他们的网站上有一个高性能的例子 - http://www.visiblox.com/examples/LargeDataSets。我在以下博客文章中选择使用Visiblox:

新效果比较:http://www.visifire.com/blog/2011/12/02/fast-silverlight-charts/

旧的效果比较:http://www.scottlogic.co.uk/blog/colin/2010/12/visiblox-visifire-dynamicdatadisplay-charting-performance-comparison/

我的遥测示例现在是我创建的CodeProject文章的一部分,如果你想看一眼!

答案 1 :(得分:3)

根据这里的建议,我刚刚试用了Visiblox和Infragistics。

Visiblox 具有良好的开发人员体验,干净的API,没有膨胀。虽然几千个数据点的性能良好,但在进入100k范围时性能会下降。这里有the Visiblox sample几千点(您可以下载示例并调整数据点的数量)。

现在,这里的常见论点是你不应该将那么多数据绑定到图表上,但是应该事先做一些修整。我同意这一点,但理想情况下,我想要一个图表控件来照顾我。进行缩放,平移以及所有这些都是非常重要的任务,我很乐意花费100美元来获得该功能。在这里重新发明轮子是显而易见的经济常识。

Infragistics 当然是正确的。我可以绑定一百万个odatapoints并获得平滑的表现。这是the Infragistics sample

然而,Infragistics会安装大量垃圾(一个本地IIS网络应用程序,其中包含您可以在线查看的示例),除了(优秀的)示例和代码级文档之外,我确实错过了一些高级别的介绍。组件和它的各个模块。

由于SO上很多人推荐使用 Telerik 控件来获得干净的API,文档和开发人员支持,我还看了一下他们的图表控件。但是,我必须承认我发现它相当缓慢(缩放需要大约500-1000毫秒,这太长而不能感觉顺畅)。 这是the Telerik sample

答案 2 :(得分:2)

Visifire是现在最快的图表。查看下面的博客链接。 http://www.visifire.com/blog/2011/12/02/fast-silverlight-charts/

图表图片显示Visifire比Visiblox快3到4倍......!

enter image description here

答案 3 :(得分:1)

在您自己开始使用WriteableBitmap之前,先看看RenéSchulte的WriteableBitmapEx,然后在博客上发表文章here。太棒了。

答案 4 :(得分:1)

我不知道任何OSS或第三方控件都能满足您的需求。

在我需要100K +数据点的情况下,我们通过保持简单来使其工作。最大的性能杀手是每个数据点中的元素数量。通过将元素保持为带有静态画笔填充的简单椭圆,应用程序非常活泼。

答案 5 :(得分:1)

Infragistics声称能够在最近发布的xamDataChart中处理大量数据。

http://www.infragistics.com/dotnet/netadvantage/silverlight/data-visualization/xam-web-data-chart.aspx#Overview

答案 6 :(得分:0)

我相信您正在寻找的Telerik样本here。它显示了您可以实际放大/缩小的大量数据。它们还具有服务器负载"Performance" Demo。以下是具有数百个数据点的Scatter Chart的示例。

答案 7 :(得分:-1)

您是否看过Telerik图表控件? 这是他们的一个演示的链接,他们使用100.000个数据点:
http://demos.telerik.com/silverlight/#Chart/Sampling

我还应该提一下,我自己没有使用图表控件,所以我不能保证它们。但演示对我来说很好看。

修改
上面的链接已经过时了。这里是Telerik图表控件最新版本的链接他们现在称之为ChartView:
http://demos.telerik.com/silverlight/#ChartView/FirstLook