翻譯|使用教程|編輯:楊鵬連|2020-11-23 12:00:00.680|閱讀 255 次
概述:?在本文中,我們將比較兩種方法來可視化CSV文件中的數(shù)據(jù)。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
Highcharts是一款純JavaScript編寫的圖表庫,為你的Web網(wǎng)站、Web應(yīng)用程序提供直觀、交互式圖表。當(dāng)前支持折線、曲線、區(qū)域、區(qū)域曲線圖、柱形圖、條形圖、餅圖、散點(diǎn)圖、角度測量圖、區(qū)域排列圖、區(qū)域曲線排列圖、柱形排列圖、極坐標(biāo)圖等幾十種圖表類型。
在本文中,我們將比較兩種方法來可視化CSV文件中的數(shù)據(jù):
無論選擇哪種方式,在處理數(shù)據(jù)時(shí)都必須通讀基礎(chǔ)知識(shí),例如查找數(shù)據(jù)源,加載數(shù)據(jù)和處理數(shù)據(jù)。
備注
在我們的文檔和API中,您可以找到許多示例和解決方案,使您可以開始工作/處理數(shù)據(jù)。
我們將使用來自NASA(國家航空航天局)的數(shù)據(jù)集,特別是來自NASA戈達(dá)德空間研究所的數(shù)據(jù)集。想法是可視化CSV文件,其中包括1880年至2019年的全球平均溫度。
1.數(shù)據(jù)來源
讓我們獲取Zonal年均CSV文件,將其存儲(chǔ)在GitHub上以用于專用的Highcharts解決方案,并在本地以自定義方式使用。CSV文件包含幾列:Year,Glob,Nhem,北半球等。這些列用逗號(hào)分隔。該文件并不是真的要讓人可讀。您可以通過多種方式查看更易于閱讀的CSV文件。例如,在自定義演示中,您可以使用Highcharts導(dǎo)出數(shù)據(jù)模塊來查看數(shù)據(jù)以電子表格格式的外觀,我們強(qiáng)烈建議將其用于此目的。
2.數(shù)據(jù)加載
要開始使用數(shù)據(jù),我們需要將其加載到腳本中。對(duì)于內(nèi)置的Highcharts解決方案,這就像設(shè)置data.cvsURL選項(xiàng)一樣簡單。
對(duì)于自定義解析器,我們將使用Fetch API標(biāo)準(zhǔn)。我們還將對(duì)現(xiàn)代瀏覽器支持的自定義解決方案使用await和async語法。使用JavaScript的最新功能時(shí),請(qǐng)記住檢查瀏覽器的容量。當(dāng)您想獲得較舊瀏覽器的支持時(shí),最好將代碼編譯為較舊的ES5語法。
3.數(shù)據(jù)解析
如果您使用內(nèi)置的Highcharts解決方案,那么數(shù)據(jù)模塊將使您免去進(jìn)行數(shù)據(jù)解析的麻煩,并且您可以直接跳到“數(shù)據(jù)可視化”部分(請(qǐng)參見第4.節(jié)“數(shù)據(jù)可視化”)。
但是,對(duì)于自定義解決方案,有各種JavaScript庫可以解析CSV。通過解析,我們的意思是找出所有逗號(hào)的位置,分解數(shù)據(jù),并將其放入對(duì)象中以使其可用。對(duì)于此數(shù)據(jù)集,使用split函數(shù)手動(dòng)進(jìn)行解析非常簡單。順便說一句,JavaScript變量中的一段文本是一個(gè)字符串對(duì)象,并且具有稱為split的功能。該函數(shù)允許您獲取任意文本并將其拆分為數(shù)組的不同元素。這基本上就是我們想要做的;我們要拆分所有行,然后在每一行中拆分所有列。split函數(shù)僅需要一個(gè)參數(shù)-分隔符或稱為定界符。在這種情況下,我們有兩種定界符。對(duì)于每一行,將一行與另一行區(qū)分開的定界符是一個(gè)換行符。所以首先 讓我們用換行符將其稱為split。同樣,我們不需要第一行–第一行對(duì)于我們?nèi)祟悂碚f確實(shí)是有用的信息,他們可以考慮數(shù)據(jù)是什么,但是對(duì)于這種用途,我們希望將年份作為一個(gè)類別。
現(xiàn)在,重要的是要知道這些數(shù)據(jù)是干凈的:沒有空日期,沒有錯(cuò)誤,沒有空塊。但是,如果數(shù)據(jù)中有逗號(hào),則此解析系統(tǒng)將崩潰。即使對(duì)于CSV文件有約定,在不應(yīng)拆分的信息周圍都使用引號(hào),但在其中有逗號(hào)的地方,您始終必須檢查數(shù)據(jù)。您還可能會(huì)發(fā)現(xiàn)您的數(shù)據(jù)尚未采用CSV格式,因此請(qǐng)確保手動(dòng)或通過CSV轉(zhuǎn)換器/清理器工具消除數(shù)據(jù)中不必要的空格和逗號(hào)。.這可能需要做很多工作進(jìn)入分析和清理項(xiàng)目的數(shù)據(jù)。
4.數(shù)據(jù)可視化
現(xiàn)在,我們準(zhǔn)備使用簡單的折線圖來可視化數(shù)據(jù)。
對(duì)于專用的Highcharts解決方案,數(shù)據(jù)托管在GitHub中,并且只需一行代碼即可提取數(shù)據(jù)(由于data-module):
data:{ csvURL:“ //raw.githubusercontent.com/mekhatria/demo_highcharts/master/globalTemperatureChange.csv”, }Highcharts數(shù)據(jù)模塊為您完成了所有繁重的工作,以獲取,處理和準(zhǔn)備要可視化的數(shù)據(jù)。是的,就是這么簡單.
在下面,您可以使用自定義代碼查看相同的數(shù)據(jù)和圖表類型(請(qǐng)參見下面的圖表):
async function getData() { const date = [], globalTemp = [], northernTemp = [], southernTemp = [], response = await fetch('../ZonAnn.Ts+dSST.csv'), data = await response.text(), rows = data.split(/\n/).slice(1); rows.forEach(element => { const row = element.split(','), year = row[0], gt = +row[1], nt = +row[2], st = +row[3]; date.push(year); globalTemp.push(gt); northernTemp.push(nt); southernTemp.push(st); }) return { date, globalTemp, northernTemp, southernTemp } }上面的函數(shù)從本地存儲(chǔ)中獲取數(shù)據(jù),對(duì)其進(jìn)行清理,處理,然后以四個(gè)不同的數(shù)組返回結(jié)果。
對(duì)于這兩個(gè)示例,其想法都是以CSV的形式加載表格數(shù)據(jù)并將其可視化。我們必須經(jīng)歷數(shù)據(jù)處理,然后在圖表上顯示數(shù)據(jù)。在第一個(gè)演示中,Highcharts數(shù)據(jù)模塊提供了一種現(xiàn)成的解決方案來獲取和處理數(shù)據(jù)。在大多數(shù)情況下,我們建議使用此選項(xiàng)。但是,如果需要進(jìn)行特定處理,則始終可以使用自定義代碼。
我們鼓勵(lì)您使用從本文中學(xué)到的知識(shí)來創(chuàng)建具有不同數(shù)據(jù)和技術(shù)的交互式圖表。隨時(shí)歡迎您在本文下提出您的問題和意見。
APS幫助提升企業(yè)生產(chǎn)效率,真正實(shí)現(xiàn)生產(chǎn)計(jì)劃可視化呈現(xiàn)與控制,快速有效響應(yīng)不同場景的生產(chǎn)計(jì)劃,提高準(zhǔn)時(shí)交貨能力,提高產(chǎn)能和資源利用率
想要購買Highcharts正版授權(quán),或了解更多產(chǎn)品信息請(qǐng)點(diǎn)擊
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自: