最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

D3.js進(jìn)階系列之CSV表格文件的讀取詳解

 更新時(shí)間:2017年06月06日 09:27:18   作者:DecemberCafe  
D3.js支持從外部讀取數(shù)據(jù)進(jìn)行圖形交互(Loading External Resources),支持的格式有CSV、txt、Html、tsv、xml文本文件和JSON XML數(shù)據(jù)結(jié)構(gòu),下面這篇文章主要給大家介紹了D3.js中CSV表格文件讀取的相關(guān)資料,需要的朋友可以參考下。

前言

之前在入門系列的教程中,我們常用 d3.json() 函數(shù)來讀取 json 格式的文件。json 格式很強(qiáng)大,但對于普通用戶可能不太適合,普通用戶更喜歡的是用 Microsoft Excel 或 OpenOffice Calc 等生成的表格文件,因?yàn)楹唵我锥?,容易編輯?/p>

Microsoft Excel 通常會保存為 xls 格式, OpenOffice Calc 通常會保存為 ods 格式。這些格式作為表格文件來說都很強(qiáng)大,但要讀取它們是有些麻煩的,D3 中也沒有提供這樣的方法。但是表格軟件都會支持生成csv 格式,它是一種非?;镜摹⑼ㄓ玫?、簡單的表格文件。本文將會說明在 D3 中怎么讀取和使用 csv 文件,下面來看看詳細(xì)的介紹:

1. CSV 格式是什么

CSV(Comma Separated Values),逗號分隔值,它是以純文本形式存儲表格數(shù)據(jù)的,每個(gè)單元格之間用逗號(Comma)分隔。CSV格式?jīng)]有一個(gè)通用標(biāo)準(zhǔn),通常使用的是RFC 4180 中所示的描述。
CSV 的文本格式如下:

省份,人口,GDP 
山東,9000,50000 
浙江,5000,20000 

理解起來非常簡單,每一個(gè)單元格之間用逗號隔開。如果想在單元格里輸入逗號怎么辦呢?用雙引號框起來就行,如下:

省份,人口,GDP 
山東,"9,000","50,000" 
浙江,"5,000","20,000" 

有些軟件在保存CSV格式時(shí),會讓你選擇使用什么符號(逗號、分號等)來分隔單元格,盡量選擇逗號吧。

2. 在 OpenOffice 中編輯和保存 CSV 文件

Microsoft Excel 雖然強(qiáng)大卻是收費(fèi)的,近幾年我已不使用。 OpenOffice 不僅開源免費(fèi),而且功能同樣強(qiáng)大。下面來說一下用 OpenOffice 怎么編輯和保存為 CSV 文件,當(dāng)然一般自己摸索著也能會用,非常簡單。

(1) 首先,打開 OpenOffice Calc 。就像 Microsoft Office 中有 Word、Excel、PowerPoint 一樣,OpenOffice 中編輯表示使用的是 Calc 。打開之后,像正常一樣輸入單元格的內(nèi)容,假設(shè)輸入如下:

(2)點(diǎn)擊“文件”,“另存為”。文件類型選擇 “CSV 文本”,底下再勾選上“編輯篩選設(shè)置”。


(3) 彈出的對話框中,選擇編碼(建議用 UTF8),字段分隔符選擇"逗號",文本分隔符選擇“分號”。點(diǎn)擊“確定”。


(4) 保存成功后,用記事本打開,結(jié)果如下:


在 D3.js 中,讀取 CSV 文件的函數(shù)只支持用逗號分隔單元格,所以請務(wù)必這樣保存。

3. 在 D3.js 中讀取 CSV 文件

在 D3.js 中提供了 d3.csv() 函數(shù)來讀取 CSV 文件。函數(shù) API 可參見: https://github.com/mbostock/d3/wiki/CSV 。

用它讀取文件的代碼如下:

d3.csv("table.csv",function(error,csvdata){ 
 
 if(error){ 
  console.log(error); 
 } 
 console.log(csvdata); 
  
}); 

這段代碼是讀取了 table.csv 文件后,再輸出讀到的數(shù)據(jù)。輸出如下:


我們可以看到,變量中 csvdata 是保存了一個(gè)數(shù)組,數(shù)組中的每個(gè)元素都一個(gè)對象,每個(gè)對象里都有 age 、name、sex 三個(gè)成員變量。這三個(gè)成員變量正是所編輯的表格的頭一排的三個(gè)單元格。如此,我們就可以在代碼中這樣調(diào)用了。

for( var i=0; i<csvdata.length; i++ ){ 
 var name = csvdata[i].name; 
 var sex = csvdata[i].sex; 
 var age = csvdata[i].age; 
 console.log( "name: " + name + "\n" + 
     "sex: " + sex + "\n" + 
     "age: " + age ); 
} 

4. 將讀入的數(shù)據(jù)轉(zhuǎn)換為字符串

在 D3 的官方 API 中,看上去似乎還有一些函數(shù): parse 、parseRows、format、formatRows。但經(jīng)過我的試驗(yàn),只有 format 一個(gè)函數(shù)可以使用,其它的都是在 D3 內(nèi)部使用的。基本上需要讀入 CSV 的數(shù)據(jù)的情況下,只要有上面第3節(jié)所敘述的內(nèi)容就足夠了。

下面是 format 的使用方法。

d3.csv("table.csv",function(error,csvdata){  
 var str = d3.csv.format( csvdata );   
 console.log(str.length); 
 console.log(str);  
}); 

上面的代碼,str 中保存的就是轉(zhuǎn)換后的字符串。

總結(jié)

CSV 格式是一種非常簡單的表格文件,它的每個(gè)單元格以逗號分隔,有的表格編輯軟件在保存的時(shí)候會讓選擇用分號或逗號等保存,這時(shí)候最好是選擇用逗號。

在 D3 中讀取 CSV 文件基本上只需要用 d3.csv() 函數(shù)即可。

好了,以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • 用JavaScript修改CSS屬性的代碼

    用JavaScript修改CSS屬性的代碼

    這篇文章主要介紹用原生的javascript修改CSS屬性的方法,需要的朋友可以參考下
    2013-05-05
  • JavaScript中的連續(xù)賦值問題實(shí)例分析

    JavaScript中的連續(xù)賦值問題實(shí)例分析

    這篇文章主要介紹了JavaScript中的連續(xù)賦值問題,結(jié)合實(shí)例形式分析了javascript賦值語句以及連續(xù)賦值操作相關(guān)用法與操作注意事項(xiàng),需要的朋友可以參考下
    2019-07-07
  • 原生Js 實(shí)現(xiàn)的簡單無縫滾動輪播圖的示例代碼

    原生Js 實(shí)現(xiàn)的簡單無縫滾動輪播圖的示例代碼

    這篇文章主要介紹了原生Js 實(shí)現(xiàn)的簡單無縫滾動輪播圖的示例代碼,幫助大家更好的理解喝學(xué)習(xí)使用js,感興趣的朋友可以了解下
    2021-05-05
  • JS數(shù)組中對象去重操作示例

    JS數(shù)組中對象去重操作示例

    這篇文章主要介紹了JS數(shù)組中對象去重操作,涉及javascript數(shù)組對象遍歷、比較、運(yùn)算等相關(guān)操作技巧,需要的朋友可以參考下
    2019-06-06
  • uniapp高頻面試題及答案合集

    uniapp高頻面試題及答案合集

    uni-app是一個(gè)使用Vue.js開發(fā)所有前端應(yīng)用的框架,開發(fā)者編寫一套代碼,可以發(fā)布到IOS、Android、Web(響應(yīng)式)、以及各種小程序、快應(yīng)用等多個(gè)平臺,下面這篇文章主要給大家介紹了關(guān)于uniapp高頻面試題及答案的相關(guān)資料,需要的朋友可以參考下
    2023-02-02
  • JavaScript函數(shù)執(zhí)行、作用域鏈以及內(nèi)存管理詳解

    JavaScript函數(shù)執(zhí)行、作用域鏈以及內(nèi)存管理詳解

    這篇文章主要介紹了JavaScript函數(shù)執(zhí)行、作用域鏈以及內(nèi)存管理的知識,文章內(nèi)容非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • 使用Chart.js圖表庫制作漂亮的響應(yīng)式表單

    使用Chart.js圖表庫制作漂亮的響應(yīng)式表單

    數(shù)據(jù)包圍著我們。雖然搜索引擎和其他應(yīng)用都對基于文本方式表示的數(shù)據(jù)偏愛有加,但人們發(fā)現(xiàn)可視化是更容易理解的一種方式。今年初,SitePoint 發(fā)表了 Aurelio 的文章《 Chart.js簡介》。在深入研究 Chart.js 的功能后,本文將會講解這篇簡介的一些重點(diǎn)。
    2015-10-10
  • 解決layui調(diào)用自定義方法提示未定義的問題

    解決layui調(diào)用自定義方法提示未定義的問題

    今天小編就為大家分享一篇解決layui調(diào)用自定義方法提示未定義的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • 關(guān)于js中e.preventDefault()的具體使用

    關(guān)于js中e.preventDefault()的具體使用

    本文主要介紹了關(guān)于js中e.preventDefault()的具體使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • js+canvas實(shí)現(xiàn)轉(zhuǎn)盤效果(兩個(gè)版本)

    js+canvas實(shí)現(xiàn)轉(zhuǎn)盤效果(兩個(gè)版本)

    這篇文章主要為大家詳細(xì)介紹了兩個(gè)版本的js+canvas實(shí)現(xiàn)轉(zhuǎn)盤效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-09-09

最新評論

社旗县| 阿鲁科尔沁旗| 阳新县| 深州市| 泊头市| 翁源县| 南昌市| 涞源县| 湖南省| 布尔津县| 阜城县| 铜梁县| 安平县| 衡阳市| 山东| 浦北县| 嘉义县| 阜阳市| 巩义市| 错那县| 红桥区| 大兴区| 徐水县| 乌兰浩特市| 洮南市| 濉溪县| 和林格尔县| 肥城市| 福安市| 含山县| 阳高县| 门源| 新绛县| 大英县| 定西市| 华亭县| 积石山| 民勤县| 孙吴县| 洛扎县| 陆丰市|