翻譯|行業(yè)資訊|編輯:楊鵬連|2021-07-05 10:21:52.863|閱讀 181 次
概述:我們編寫了一份完整的 JavaScript 圖表指南,讓您了解有關 JavaScript 圖表和圖表庫的更多信息。幫助您決定哪種方法或產(chǎn)品最適合您的項目和應用需求。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
LightningChart.NET完全由GPU加速,并且性能經(jīng)過優(yōu)化,可用于實時顯示海量數(shù)據(jù)-超過10億個數(shù)據(jù)點。 LightningChart包括廣泛的2D,高級3D,Polar,Smith,3D餅/甜甜圈,地理地圖和GIS圖表以及適用于科學,工程,醫(yī)學,航空,貿(mào)易,能源和其他領域的體繪制功能。
圖表庫正處于高峰期,它們的開發(fā)和使用在 JavaScript 等語言中變得更加流行。作為證明,有許多 JavaScript 圖表庫具有滿足用戶需求的各種功能,包括商業(yè)產(chǎn)品和開源項目。但是,開發(fā)人員如何才能做出明智的選擇并為 JavaScript 選擇最佳圖表庫?棘手的問題,但我們隨時為您提供幫助!我們編寫了一份完整的 JavaScript 圖表指南,讓您了解有關 JavaScript 圖表和圖表庫的更多信息。幫助您決定哪種方法或產(chǎn)品最適合您的項目和應用需求。
什么是 JavaScript 圖表
當分析大量數(shù)據(jù)被認為對組織、目的和目標有益時,圖表庫就成為必需品。數(shù)據(jù)可視化的主要目的是幫助不同的利益相關者產(chǎn)生洞察力和理解他們的數(shù)據(jù),并最終轉(zhuǎn)化為有價值的知識。但是 JavaScript 什么時候開始發(fā)揮作用,什么是 JavaScript 圖表?讓我們仔細看看。
圖 1. 滾動熱圖,聲納數(shù)據(jù)模擬
JavaScript 圖表是多種圖表類型的組合,例如 2D(通常稱為 XY 圖表)和 3D 圖表、折線圖、條形圖或極坐標圖,它們易于理解(消除數(shù)據(jù)分析背后的所有復雜性),同時提供高度可視化界面允許流暢的客戶端交互。隨著 Web 瀏覽器繼續(xù)在原生 JS 語言上開發(fā)其潛力,JavaScript 圖表的重要性增加了,因為它與整個互聯(lián)網(wǎng)完全兼容。盡管如此,推動 JavaScript 圖表使用的不僅是原生語言的流行,而且是對基于 Web 的信息可視化解決方案日益增長的需求。
JavaScript 圖表也是目前用于可視化數(shù)據(jù)的更復雜、更詳細但仍然簡單的替代方案。可視化數(shù)據(jù)的能力不僅依賴于重要的屬性,例如從哪里訪問數(shù)據(jù)或處理的數(shù)據(jù)量,而且客戶端交互功能被認為是每個圖表庫都必須被視為世界的必要條件——類 JavaScript 解決方案,適用于高要求和數(shù)據(jù)驅(qū)動的行業(yè)。
JavaScript 交互功能對最終用戶很重要,應該被認為是移動優(yōu)先,對自然用戶操作(如雙指縮放、滾動、平移或單擊)具有很好的響應能力。
當 JavaScript 被認為是“瀏覽器的語言”并且分析大數(shù)據(jù)的需求逐年上升時,難怪現(xiàn)在的 JavaScript 圖表庫還需要高性能、廣泛兼容、完全交互和可定制的解決方案數(shù)據(jù)驅(qū)動的組織。
為什么要使用 JavaScript 圖表?
數(shù)據(jù)可視化和圖表幫助我們更容易、更快地理解數(shù)據(jù)。它們可能是一份平庸的報告和一份優(yōu)秀的報告之間的區(qū)別。圖表還用于演示和實時監(jiān)控。
JavaScript 圖表特別棒,因為您可以將它們直接嵌入到任何網(wǎng)頁中,并且它適用于使用您的其他網(wǎng)頁內(nèi)容的相同受眾。JavaScript 圖表通常不受客戶端設備的限制,并且傾向于在 PC、筆記本電腦、移動設備和平板電腦上開箱即用。還有一些現(xiàn)代解決方案可以將 Web 應用程序帶到幾乎任何地方,甚至在 Web 瀏覽器之外——桌面應用程序、移動應用程序、物聯(lián)網(wǎng)設備。
即使您的應用程序不是基于 Web 的,使用 JavaScript 圖表仍然是一個好主意;基本上,所有現(xiàn)代桌面框架都有一些方法可以在其中嵌入網(wǎng)站,您可以利用它在桌面應用程序中獲取 Web 圖表。這為您提供了更廣泛的可用圖表工具可供選擇,因為網(wǎng)絡圖表市場中有很多選項,每個選項都有不同的優(yōu)點。將圖表邏輯包含在 Web 控件中也是有益的,因為它可以導出到更大的主項目之外并用作單獨的功能。
JavaScript 圖表不斷發(fā)展和優(yōu)化得越來越好,這正在減少 Web 應用程序性能限制的歷史問題。如今,還有一些 JavaScript 圖表可以通過客戶端硬件加速數(shù)據(jù)可視化,從而實現(xiàn)大型數(shù)據(jù)集和實時數(shù)據(jù)源的可視化。
Web 應用程序的動態(tài)特性使 Web 圖表的使用、共享和編輯變得簡單快捷,從而提高了其開發(fā)速度。例如,Stack Overflow是一個供開發(fā)人員幫助開發(fā)人員的論壇。請求有關某些特定圖表庫(示例)的幫助是司空見慣的。使用網(wǎng)絡圖表,答案可以與交互式代碼片段組合在一起,通過實時編輯在答案旁邊顯示圖表——這有多酷?
何時使用 JavaScript 圖表?
在極少數(shù)情況下 JavaScript 圖表是不切實際的方法。通常,這些都圍繞著需要通過網(wǎng)絡傳輸大量數(shù)據(jù)或在可視化機器上運行大量繁重的計算。在這些情況下,使用桌面圖表應用程序可以更簡單地訪問更多處理能力,甚至可以從本地文件讀取數(shù)據(jù)。
有經(jīng)驗的數(shù)據(jù)可視化用戶通常會避免遷移到 Web 圖表,因為他們對編程語言的變化感到不舒服。然而,最簡單的 JavaScript 圖表很容易使用,以至于配置只是定義一個具有一些直觀屬性的 JSON 文件。可用的 JavaScript 圖表庫充滿活力和豐富,所以勇敢一點,給它一個機會!
你如何在 JavaScript 中創(chuàng)建圖表?
JavaScript 圖表需要在網(wǎng)頁上精確放置文本、形狀和顏色。的的JavaScript的圖表應用最流行的方法是SVG,畫布和WebGL。
SVG是最高級的技術,所以它最容易使用,但通常也是最慢的。Canvas使用起來非常簡單,經(jīng)驗豐富的開發(fā)人員可以在幾個小時內(nèi)制作一個簡單的圖表——但是,隨著形狀數(shù)量的增加,它最終會遇到性能瓶頸。WebGL是通過使用客戶端 GPU 加速渲染來提高 Web 圖表性能的終極解決方案——甚至可以實現(xiàn)復雜的可視化,例如通過任何數(shù)據(jù)點屬性進行動態(tài)顏色查找,并且可以添加 3D 投影。
直接對 WebGL 進行編程比 SVG 或畫布要困難得多,但它可以實現(xiàn)無數(shù)使用 SVG 或畫布方法根本無法實現(xiàn)的應用程序。
一些開發(fā)人員選擇使用旨在簡化 WebGL 使用的開源工具來創(chuàng)建他們的圖表——這種方法簡化了開發(fā),但根據(jù)外部工具集的功能限制了可用的成就和性能。
高性能網(wǎng)絡圖表也屬于這一類;然而,它們處于更高的層次,提供了用于繪制某些特定圖表、系列或數(shù)據(jù)可視化技術的直接 API——例如,可以使用幾行代碼創(chuàng)建折線圖,而不必擔心單個組件,例如刻度線和線條。
功能性基本圖表的最低要求的常見列表是 X 軸刻度(刻度描繪數(shù)據(jù)坐標的范圍,每個刻度至少包含一個顯示坐標的文本標簽,但通常還有一個網(wǎng)格線,該網(wǎng)格線穿過圖表上的水平或垂直平面)、Y 軸刻度和數(shù)據(jù)系列(例如,連續(xù)線、設置點標記或熱圖)。
在現(xiàn)代數(shù)據(jù)可視化中,這個需求列表迅速擴展到各種組件,如日期時間刻度、帶/線熒光筆、數(shù)據(jù)光標、自定義刻度、用戶交互(如平移和縮放)、3D 投影、縮放帶圖等。
圖表如何在 JavaScript 中工作?
最常見的 JavaScript 圖表以所謂的 IIFE 格式(立即調(diào)用的函數(shù)表達式)分布。這非常方便,因為您可以簡單地將 IIFE JavaScript 文件附加到帶有腳本標記的 HTML 文件中,就像這樣<script src=’my-chart.iife.js’></script>,它將使庫的所有內(nèi)容可供以后在網(wǎng)站上使用。
通常,這些 IIFE JavaScript 文件在線托管,因此您無需為您的應用程序安裝或下載任何內(nèi)容,您只需直接從 HTML 文件中的主機網(wǎng)站下載 IIFE,無需本地資源。
通過訪問網(wǎng)絡圖表代碼,常見的使用案例根據(jù)網(wǎng)絡圖表的設計分為兩種方法—— 描述性調(diào)用或功能實時使用. 大多數(shù)網(wǎng)絡圖表針對靜態(tài)數(shù)據(jù)的可視化,這意味著用戶以 JSON 格式配置圖表,網(wǎng)絡圖表庫根據(jù)配置在網(wǎng)頁上生成內(nèi)容。這些類型的網(wǎng)絡圖表通常遵循描述性 API 設計,用戶負責給出圖表的“描述”。
另一方面,更多面向?qū)崟r的 Web 圖表庫通常更喜歡函數(shù)式方法,其中用戶根據(jù)需要發(fā)出不同的命令來實時指示 Web 圖表。這種方法通常更適合實時更新并處理實時數(shù)據(jù)流和動態(tài)用戶交互的圖表。
無論網(wǎng)頁圖表設計如何,代碼思路始終如一; 用戶選擇可以描述為“圖表”、“系列”、“繪圖”或“圖形”類型的數(shù)據(jù)可視化類型,并以網(wǎng)絡圖表庫期望的格式提供輸入數(shù)據(jù)。通常,不同的圖表庫以 API 參考、交互式游樂場應用程序、教程、示例和視頻的形式提供文檔,這對于讓您的代碼和 Web 圖表之間的交互工作至關重要。
JavaScript 圖表示例
維基百科說大約有 83 個 JS 圖表庫,讓我想知道它們都是什么樣子的?
我們當然不會在這篇文章中介紹所有這些,因此這里列出了五個 JavaScript 圖表示例,這些示例對于數(shù)據(jù)可視化倡導者來說是純粹的美。
1.站點流量折線圖
考慮這樣一個場景:用戶需要比較一段時間內(nèi)其網(wǎng)站流量的兩個(或多個)維度。添加不同的屬性,例如顏色或形狀,可以很容易地區(qū)分每個趨勢線代表什么。Canvas JS 提供了在前端和后端自定義折線圖的可能性。
4.餅圖和甜甜圈一般示例
最常見的圖表之一可能是餅圖和甜甜圈圖。數(shù)據(jù)與 100% 值成比例顯示,這些圖表類型通常在使用較少的段時效果更好,而不是更好地適應更多數(shù)據(jù)點的折線圖或條形圖,如下一個 ChartJS 圖表所示。
JavaScript 圖表中的高性能意味著什么?
一個經(jīng)常爭論的話題。正如之前關于圖表和圖表中性能的文章所解釋的那樣,性能是對機器、產(chǎn)品等完成一項工作的程度的描述。這就是性能的簡單解釋。那么,如何描述什么是高性能以及它在 JavaScript Charts 中的含義?這是在這里更詳細地研究的內(nèi)容。
第一:用于描述 JavaScript 圖表數(shù)據(jù)可視化性能的兩個常用術語是 FPS 和渲染時間。
所有圖表都不是為高數(shù)據(jù)速率而設計的。一些圖表庫使用基于 Canvas/HTML5 的渲染(甚至沒有提到傳統(tǒng)的基于 SVG 和 Flash 的 JavaScript 圖表),這比 WebGL 渲染慢得多。WebGL 能夠有效地呈現(xiàn)數(shù)百萬個數(shù)據(jù)點。“WebGL 是一種 JavaScript API,用于在任何兼容的 Web 瀏覽器中渲染高性能交互式 3D 和 2D 圖形,而無需使用插件。”
事實仍然是,有些人滿足于較少,而有些人則需要更多。當一個圖表庫具有數(shù)千個數(shù)據(jù)點的渲染能力時,一些圖表庫提供商聲稱“高性能”。在考慮使用 2021 年最好和最快的 JavaScript 圖表庫可以達到什么繪圖級別時,這完全是一種誤導。JavaScript Charts 可視化能力目前在實時渲染中,至少有幾百萬個數(shù)據(jù)點,擁有最先進的圖表庫。因此,在數(shù)千個數(shù)據(jù)點中聲明的渲染能力還不是高性能的。如果通過下采樣或犧牲特征來實現(xiàn)繪制數(shù)百萬或數(shù)百萬個數(shù)據(jù)點的能力,則不是高性能。數(shù)以百萬計的數(shù)據(jù)點,流暢,實時,沒有技巧或噱頭——這是在高性能 JavaScript 圖表庫中“高”的性能水平。
遺憾的是,當不同的圖表提供者談論 JavaScript 圖表性能時,相關的實際數(shù)字完全不存在或呈現(xiàn)不佳,這是很常見的。這就是為什么用戶在嘗試找到最高性能的圖表庫時可能需要做一些額外的工作。但幸運的是,現(xiàn)在有關于 JavaScript 圖表庫的性能比較(包含實際數(shù)據(jù)和事實),這是最新的比較之一:折線圖性能比較。
什么是最好的 JavaScript 圖表庫?
那么,首先要考慮的是,“最好”對您來說意味著什么?是性能/速度、堅固的負載能力、可靠性、特定功能、一流的技術支持、易于實施、社區(qū)支持、價格、可定制性嗎?您需要一招小馬或更全面的解決方案嗎?最終歸結(jié)為項目和用戶需求。因此,對此根本沒有一個正確的答案。有必要考慮你使用什么平臺,你需要什么圖表,你有多少開發(fā)人員在做這個項目,你需要什么樣的渲染能力等等。
您是否還需要額外的服務來補充實際的圖表庫?額外的動手能力,更多的外包開發(fā)人員力量來快速啟動您的項目或為您做一個定制的功能?這些額外的需求值得花點時間考慮,因為有些提供商更適合有效地提供這些需求,并為您節(jié)省寶貴的時間資源。您可能希望從供應商那里選擇一個圖表庫,它可以幫助您優(yōu)化您的項目,以便您可以專注于您的核心工作——成為一名出色的開發(fā)人員!
如果您對該圖表控件感興趣,歡迎加入圖表控件QQ交流群:740060302
想要購買LightningChart.NET正版授權,或了解更多產(chǎn)品信息請點擊
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務必注明出處、不得修改原文相關鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn