2010-04-12 76 views
9

我正在研究提供幾種可視化大量數據的方法。這可能包括但不限於簡單的圖表。我正在探索的技術將涉及形狀,文字和線條。它還將涉及與這些元素的元素(隱藏,聚焦等)和動畫(移動,拖動,系統重組等)的交互。用於可視化數據的技巧

SVG或Canvas看起來像是一個明顯的選擇(與JS庫 - 可能是jQuery一起),但缺乏跨瀏覽器可用性是一個問題。我想寧願以避免Flash/Flex,但現在它是我發現的唯一的堅如磐石的跨瀏覽器技術,如果支持IE7/8是必需的。

有沒有人有任何其他建議或任何額外的信息,使我列出的技術似乎更具吸引力?

謝謝。

回答

1

你可能想看看RaphaelGRaphael。 Raphael允許您創建矢量圖形,並將在支持SVG的瀏覽器上使用SVG,同時自動切換到IE上的VML。

您還可以看看基於畫布的processing.js

+0

這些都在列表中。謝謝。 – 2010-04-12 17:47:59

+0

我想我會從拉斐爾開始。它是跨瀏覽器(閱讀:它將在IE中工作),似乎非常強大。 – 2010-04-14 18:56:39

0

SVG和Canvas適用於相對簡單的數據(即幾行就足夠了)。對於複雜的數據(比如頻率分佈,或者每個像素髮射一個樣本的東西),您應該在服務器上渲染一個正常的圖像。

+0

目前,我試圖避免性能問題(我認爲這是您提出渲染圖像的原因)。當然,當性能成爲問題時,我們不得不做一些事情來「緩存」輸出,這可能會創建一個圖像,並消除實時精度。如果您有其他理由,請詳細說明。 – 2010-04-12 13:01:16

+0

正如我所說,這取決於數據。如果渲染10,000多行代碼,SVG和Canvas將開始變慢,因爲您需要解析1MB文檔以獲取座標,而圖像只需要幾百KB。 – 2010-04-12 15:34:24

1

HighCharts是一個Javascript,良好的免費和跨瀏覽器製圖工具。

看看在Highcharts demo

+0

流暢的東西,但似乎只支持傳統的圖形。我需要支持雲組,分形等。相同的想法,但在傳統的圖形包模型外面。 – 2010-04-12 13:02:48

0

如果您正在使用jquery的圖表,我會definiately退房Flot這是跨瀏覽器的圖形/圖表庫。

1

SVG在IE以外的所有應用程序上均可用,並且VML可在IE上使用(自5.5,IIRC以來)。如果您可以同時提供SVG和VML,您將擁有幾乎每個人都可以看到的矢量圖形。 RaphaelJS是一個Javascript庫,可以從相同的Javascript代碼生成這兩種格式,但當然這只是一種方法。

除了IE之外,Canvas幾乎都可以使用,但是一些瘋狂的人寫了一些叫做excanvas的模擬Canvas的東西,同樣也是VML。從我使用過它的朋友和同事那裏,我聽說其性能比任何其他瀏覽器圖形解決方案都要糟糕,但如果你想做可移植的位圖圖形,它幾乎是城市中唯一的非插件遊戲。

你採用哪種路線 - 矢量或光柵 - 實際上取決於你的應用程序。

+0

我的意圖是去矢量路線。因爲這是一個本土解決方案來解決本土問題,我真的希望避免實現SVG和VML,但是如果我可以找到一個很好的包... – 2010-04-12 15:10:42

2

查看原始Processing.org

他們使用Java小程序似乎很奇怪/不合時宜,但他們能夠比JavaScript更好地獲得Java的性能。小程序似乎可以在任何地方工作,並且您可以訪問許多優秀的Java庫。