2010-04-09 88 views
10

我一直在寻找Silverlight制图控件来显示大量样本(〜五个单独系列中的〜10,000个数据点 - 总共约50k个点)。高密度Silverlight制图控制

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

我相信现有图表控件的性能问题是由于大量使用矢量图形造成的。 Ergo one解决方案是使用WritableBitmap类生成光栅图表的客户端图表控件。

在我跌得太厉害之前,轮子重新发明了兔子洞 - 有人发现第三方或OSS控件会在火花线上管理大量数据点

+0

你好,请看看SciChart,它能够在性能演示(每秒3,000,000个数据点)上以30FPS渲染多个系列总计100,000个数据点。这是一个新的产品,并将准备在2012年第一季度早期上线。 它没有LOB图表的所有功能,但支持多种图表类型,基本光标,缩放,平移和轴缩放以及性能非常高。 http://www.abtsoftware.co.uk/News/tabid/93/articleType/ArticleView/articleId/16/SciChart_Technology_Preview_-_Fast_WPFSilverlight_Stock_Chart_Performance_Demo。aspx – 2011-12-22 10:42:41

回答

-1

你看过Telerik制图控件吗? 这里是他们的演示之一,他们使用的是100.000数据点的链接:
http://demos.telerik.com/silverlight/#Chart/Sampling

我还要提到的是我没有使用图表控制自己,所以我不能为他们提供担保。但是演示对我来说很不错。

编辑
上面的链接已经过时了。下面是对Telerik的图表控制他们称之为的最新化身链接ChartView现在:
http://demos.telerik.com/silverlight/#ChartView/FirstLook

+0

链接加载一个空白页面。 – 2011-12-06 06:13:17

+0

是的,从那时起,Telerik组件就被更新了。我已更新链接。 – 2011-12-07 14:30:28

1

你开始对自己的WritableBitmap玩耍之前,勒内·舒尔特看看WriteableBitmapEx,他的博客吧here 。真棒的东西。

+0

优秀的建议!之后,我用WritableBitmapEx编写了一个小游戏,但还没有开始在任何图表明智的相当尚未开始。 不错的图书馆。谢谢安东尼。 – ptg 2010-04-29 00:38:37

1

我不知道任何OSS或第三方控件将会做你所需要的。

在我需要100K +数据点的情况下,我们通过保持简单来实现它。最大的杀手杀手是每个数据点内的元素数量。通过使用静态画笔填充元素简单的椭圆形,填充应用程序相当活泼。

+0

你好,你最终使用了哪个组件,能够渲染100k点? – 2011-12-22 10:46:31

7

退房Visiblox(http://www.visiblox.com/)图表。我正在开发一个遥测应用程序,它在同一个Silverlight组件中使用了三个图表,总共绘制了约36,000个点数,并且在性能方面几乎没有放缓,如果有的话。

他们在他们的网站上有一个高性能的例子 - http://www.visiblox.com/examples/LargeDataSets。我选择在以下博客文章loooking后使用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文章的一部分,如果你想看看!

3

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

Visiblox拥有良好的开发者经验,干净的API,没有膨胀。虽然数千个数据点的性能可以确保,但当您进入100k范围时,性能会下降。这里有the Visiblox sample几千点(你可以下载样本,只是调整数据点的数量)。

现在,这里的常见论点是,你不应该将那么多的数据绑定到图表上,但应该事先做一些修整。我同意这一点,但理想情况下,我想要一个图表控件来帮助我。获取缩放,平移和所有这些都是不平凡的任务,我很乐意提供几百美元来获得该功能。不要在这里重新发明轮子,这是明确的经济常识。

Infragistics当然有这个权利。我可以绑定一百万个odatapoints并获得流畅的性能。这里是the Infragistics sample

但是,Infragistics安装了很多垃圾(本地IIS web应用程序,您可以在线看到示例),除了(优秀的)示例和代码级文档外,我确实错过了一些高级别的介绍每个组件和它的独立模块。

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

+0

我目前正在调查[mindscapehq] [http://www.mindscapehq.com/demo/silverlightelements/demopage.html#/ChartOverviewPage]图表。与Infragistics相比,即使绘制非等距x值(真x,y图),它也可以实现良好的性能。 – 2012-02-14 12:40:47

0

我相信你正在寻找Telerik的样本,可以发现here。它显示大量数据,您可以放大/缩小。他们也有一个服务器负载"Performance" Demo。这里有一个带有数百个数据点的Scatter Chart的例子。