數據可視化是在上升。 世界各地的出版商——個人博客和主要在線出版物都意識到圖表、地圖和組合的兩個可以傳達一個消息遠比普通的數字可以更有效。 從簡單的圖表的信息圖形復雜時間軸動畫,?數據可視化是出現在網絡上?。 然而,正如在其他地區,一旦每個人都在火車上,區分自己和包變得困難。
請繼續閱讀,找出一組物理引擎可以分開你的努力。
你不需要去遠處尋找數據可視化的例子。 把谷歌分析的實時視圖,哪些地方不同大小的泡沫在高級地圖說明定量信息:
一個示例泡沫圖(圖片:?谷歌分析?)(?查看大版本?)
或者采取“?石油的世界地圖?“通過紐約時報(順便說一下,確實很多?漂亮的數據可視化?)。 映射的工作,但我敢打賭你們大多數人遇到更漂亮的地圖,泡沫不會重疊形成的一種扭曲的地圖,更大的泡沫推動的較小的地方,下面的地圖,還被《紐約時報》:
另一個泡沫地圖(圖片:?紐約時報?)(?查看大版本?)
地圖這樣特別好的相對較少的國家分配值時——并不是所有的國家在奧運會上贏得獎牌,畢竟。 如果泡沫直接被放置在各自的國家,他們會重疊,結果不會是視覺上賞心悅目。
有了數據可視化庫?amCharts?多年來,我總是尋找方法來幫助用戶可視化數據的方式是創意和美觀,有效地傳達他們的信息。 地圖類似于本文中討論的無疑是很好的傳達定量地理信息的手段。 往下讀,找出如何讓這種事發生。
默認特性的映射庫- JavaScript地圖讓你生成一個標準的泡沫地圖很容易:
上面的地圖已經很好看和實現很簡單,但是重疊的仍然是一個問題。 讓我們解決這個問題。
我可以嘗試編寫自己的腳本檢測和解決沖突(不是一件容易的事)。 從我自己的游戲開發經驗,我知道所有的物理仿真庫內置的碰撞檢測。 讓我們使用其中之一。
但為什么不呢? 因為我們利用這些庫的力量,我們也可以用他們的其他特性。?讓我們使我們的圖表動畫逼真的運動?一個真正令人印象深刻的結果,無疑會捕獲用戶的注意力。
一群物理學現成的JavaScript庫。 我選擇最著名Box2D JavaScript港口之一,?box2dweb。 這個想法很簡單。 我們與泡沫,有地圖,我們有一個box2d世界(看不見的用戶)相同大小的泡沫相同的復制。
我們將使用(看不見的)box2d世界模擬泡沫運動和交互(如碰撞檢測和其他東西),監控氣泡的位置和動態地修改這些位置在地圖上。 我不會進入技術細節,您可以查看源代碼,如果你想要的。 防止泡沫下降,我們簡單地設置重力?0。 這是結果:
太好了,不是嗎? 現在,我想在運行時改變一些泡沫的大小,讓其他泡沫相應移動。 要做到這一點,我們必須規模box2d世界的泡沫和地圖一起泡沫,只是觀察會發生什么。 經過一些測試,我發現這工作可能通過增加大小的泡沫,而不是通過減少——泡沫取代之前的其他大型泡沫縮小不返回:
我們需要一個更復雜的解決方案。 經過實驗,我來到這個:
創建一個靜態對象的每個國家,始終保持在適當的位置。
讓這個對象“傳感器”,這樣其他對象不碰撞。
創建一個固定傳感器和泡沫之間的聯合,并調整這個共同的屬性,允許一些運動雖然總是被吸引的位置傳感器。
很好地工作:
只是為了顯示什么可以用物理引擎,下面是另一個演示我們的地圖全球咖啡消費。 在你問之前,我們完全由數據。
這張地圖很我們的技術方法與上面過去演示。 唯一的區別是,泡沫最初不加入他們的目的地位置,而是放置在圖的中間,就在咖啡壺,咖啡杯是由三個矩形box2d。 如果你取消所有行的“調試”(兩個地方在畫布元素的JavaScript源和HTML),你可以得到一個box2d debug-draw視圖(在做這樣的工作時非常有幫助):
一個線框圖進行調試物理在我們想象的委員會(?查看大版本?)
太棒了,不是嗎? 而且只有500行代碼(不包括數據)。
結論
物理引擎不只是為游戲和專門的模擬。 他們使我們能夠添加驚人的效果,只有幾行代碼,解決幾何問題,否則我們周——如果不是數月建立了我們自己的。
我們這里關注box2d引擎,這是健壯的和強大的,但是它可能會有點慢慢的設備上。 很多引擎是可用的。 我們鼓勵您嘗試一些與你或看到點擊哪一個最適合于手頭的任務。 如果你只是需要解決重疊的問題,例如,然后一個輕量級的選擇可能奏效,和一個小得多的足跡和低得多的處理開銷。
實際上是沒有限制你能做什么與物理數據的可視化。?創建列圖表,讓他們像多米諾骨牌,或使餅圖,反彈和更多。 可以使對象在圖表和地圖,旋轉,跳躍,改變形狀,變形的方式將更快地抓住觀眾的注意力比常規靜態甚至互動版本。
你會找到更多的例子和數據可視化的工具?amCharts?網站。文章整理來自網絡,轉載請注明北京網站建設公司-北京傳誠信,翻譯不好,請見諒!