2010-04-09 93 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的例子。