可视化前端初探(一)D3.js

1.D3是什么D3的全称是(Data-DrivenDocuments),翻译过来就是一个被数据驱动的文档。简而言之,就是一个主要是用来做数据可视化的JavaScript的函数库。由于它本质上是JavaScript,所以用JavaScript也是可以实现所有功能的,但它能大大减小你的工作量,尤其是在数据可视化方面,D3已经将生成可视化的复杂步骤精简到了几个简单的函数,你只需要输入几个简单的数据,就能够转换为各种绚丽的图形。

2.什么是数据可视化以及为什么要数据可视化

将枯燥乏味复杂的数据以图形的方式表现出来,这就是数据可视化。如现在有一组数据【5,15,23,78,110,57,29,34,71】,这里的数据不多,还是比较容易直接看出它们的大小关系,但更直观的是用图形显示,如下图:

3.为什么用D3这类js框架来做前端数据可视化

就拿上面数据可视化条形图来举例子,我们用原生js来实现这个效果。

目标:用横向柱状图来直观显示以下数据vardata=[5,15,23,78,110,57,29,34,71];

HTML代码:

css代码:

#barChart{background:#f0f0f0;padding:10px;font-family:Verdana;color:white;}#barChart.bar{left:0px;height:20px;background:blue;margin:5px;}js代码:

//要展示的数据对象vardata=[5,15,23,78,110,57,29,34,71];;window.onload=function(){//计算data的长度varlen=data.length;//获取容器DOM对象varbarChart=document.querySelector("#barChart");//创建len个div对象,并设置其属性for(vari=0;i

4.D3的几个特点概述

1.选择集使用d3.select()或d3.selectAll()选择元素后返回的对象,就是选择集。D3能够连续不断地调用函数,列如:d3.select().selectAll().text(),这称为链式语法,和JQuery的语法很像。如下示例,用D3来更改文本和样式

d3.select():是选择所有指定元素的第一个d3.selectAll():是选择指定元素的全部

varbody=d3.select("body");//选择文档中的body元素varp1=body.select("p");//选择body中的第一个p元素varp=body.selectAll("p");//选择body中的所有p元素varp=body.selectAll(".car");//选择body中的所有类名为car的元素varsvg=body.select("svg");//选择body中的svg元素varrects=svg.selectAll("rect");//选择svg中所有的svg元素(2)绑定数据D3一个很强大的特点是能将数据绑定到DOM上,也就是绑定到文档上。例如网页中有段落元素和一个整数100,于是可以将整数100与绑定到一起。绑定之后,当需要依靠这个数据才操作元素的时候,会很方便。

D3中是通过以下两个函数来绑定数据的:datum():绑定一个数据到选择集上data():绑定一个数组到选择集上,数组的各项值分别与选择集的各元素绑定

接下来分别使用datum()和data(),将数据绑定到以下HTML元素上。

我爱简书

Ilovejianshu

用datum()实现

varstr="nightzing";varbody=d3.select("body");varp=body.selectAll("p");p.datum(str);p.text(function(d,i){return"第"+i+"个元素绑定的数据是"+d;});运行结果在上面的代码中,用到了一个无名函数function(d,i)。当选择集需要使用被绑定的数据时,常需要这么使用。其包含两个参数,其中:

d代表数据,也就是与某元素绑定的数据。i代表索引,代表数据的索引号,从0开始。

用data()实现

vardataset=["Ilikefood","Ilikegaoxiao"];varbody=d3.select("body");varp=body.selectAll("p");p.data(dataset).text(function(d,i){returnd;});运行结果以上代码也用到了一个无名函数function(d,i),其对应的情况如下:

当i==0时,d为Ilikefood。当i==1时,d为Ilikegaoxiao。此时,元素与数组dataset的三个字符串是一一对应的,因此,在函数function(d,i)直接returnd即可。

(3)插入元素插入元素涉及的函数有两个:

append():在选择集末尾插入元素insert():在选择集前面插入元素

HTML元素同上,以下代码是插入元素的示例。

/*在body的末尾添加一个p元素*/body.append("p").text("appendpelement")/*在body中id为car的元素前添加一个段落元素*/body.insert("p","#car").text("insertpelement");(4)删除元素删除一个元素时,对于选择的元素,使用remove即可,例如:

varp=body.select("#car");p.remove();三.D3.js实战基础讲完了,下面就为大家介绍几个D3实战的例子,D3提供了许多的SVG图形的生成器,它们都是只支持SVG的。因此,在D3中使用SVG画布来绘制图表是很常见也是被推荐的一种方式。

目标:用横向柱状图来直观显示以下数据vardata=[5,15,23,78,110,57,29,34,71];为了代码简洁方便,直接用数值的大小来表示矩形的像素宽度,同时为了方便理解,元素和样式都都直接在D3的js代码中实现,之前用原生js实现的例子那里的html元素和css样式都可以不要了,直接写下面的代码即可实现效果

varrectHeight=25;//每个矩形所占的像素高度(包括空白)vardata=[5,15,23,78,110,57,29,34,71];svg.selectAll("rect").data(dataset).enter().append("rect").attr("x",20).attr("y",function(d,i){returni*rectHeight;}).attr("width",function(d){returnd;}).attr("height",rectHeight-2).attr("fill","blue");

这段代码最主要的部分是:

svg.selectAll("rect")//选择svg内所有的矩形.data(dataset)//绑定数组.enter()//指定选择集的enter部分.append("rect")//添加足够数量的矩形元素有数据,而没有足够图形元素的时候,使用此方法可以添加足够的元素。添加了元素之后,就需要分别给各元素的属性赋值。在这里用到了function(d,i),前面已经讲过,d代表与当前元素绑定的数据,i代表索引号。给属性赋值的时候,是需要用到被绑定的数据,以及索引号的。最后一行代码:.attr("fill","blue")是给矩形元素设置颜色。正式开发中推荐写在CSS文件中去,方便归类和修改。这里为了便于理解,将样式直接写到元素里。

THE END
1.datum是什么意思,datum中文翻译怎么读datum (n.) proper Latin singular of data (q.v.).双语例句1. "Data" is the Latin plural form of "datum". data在拉丁文中是datum的复数形式。 来自柯林斯例句 2. 'Data' is the Latin plural form of 'datum'. data在拉丁文中是datum的复数形式。 来自辞典例句 3. The piezpmetric head ishttps://3325.cn/dict/datum/
2.data单复数一样吗data和datum谁是单数形式,谁是复数形式?首先,datum 是单数, data是datum的复数形式。(类似 medium 和 media) 其次,datum很少被用到了,现在大家往往用data。data是个单数不可数词语。类似sand 和water。以下说明data为什么是单数。 在英语学界,关于data是单数还是复数本来就有很多的争议。 有些人说data就是复数,而datum是data的单数形式。理由是,像英语中https://blog.csdn.net/weixin_35231842/article/details/112037365
3."data"和"datum"的差別在哪裡?HiNative高評價回答者你知道如何提升自己的外語能力嗎?你要做的就是讓母語者來訂正你的寫作!使用HiNative,https://tw.hinative.com/questions/18745127
4.Geodeticdatum的解释和发音「欧路词典」英汉资料zī liàodata;datum; information; material 测地学的cè dì xué de geodesic,geodetic 分组资料fèn zǔ zī liàoclassifieddata 感觉材料gǎn jiàocái liào sensedatum 史料shǐ liàohistoricaldata, historical materials 仿真数据fǎng zhēn shù jù emulateddata; simulationdata https://www.frdic.com/mdicts/en/Geodetic_datum.html
5.datum是什么意思,datum的翻译,datum音标读音用法和例句datum相关词 英汉例句 "Data" is the Latin plural form of "datum". data在拉丁文中是datum的复数形式。 'Data' is the Latin plural form of 'datum'. data在拉丁文中是datum的复数形式。 The piezpmetric head is also measured from the same datum level. http://www.ndsq.cn/ndsq_en_cn_dict/396825---.html
6.Datum–TheDataMarketplacepoweredbyBlockchainUnlock the $120 Billion data economy. Datum is the decentralized marketplace for social and IoT data. Powered by Ethereum, BigchainDB and IPFS.https://webapp.datum.org/
7.data的意思在线翻译,解释data中文英文含义,短语词组,音标读音data 共找到1项关于data意思的翻译解释和用法说明 同义词 ?evidence ?information ?proof 相关词 ?data ?database ?viewdata 常用短语 ?data bank ?data carrier ?data diddling ?data processing ?data processor ?data sethttps://odict.net/data/
8.data的复数是datum?datum的复数是data?解答一 举报 data本身是复数 它的单数形式是datum 解析看不懂?免费查看同类题视频解析查看解答 相似问题 datum的复数是data? data的复数是datum?datum的复数是data? data的复数形式是datas还是data? 特别推荐 热点考点 2022年高考真题试卷汇总 2022年高中期中试卷汇总 2022年高中期末试卷汇总 2022年高中月考试卷汇https://www.zybang.com/question/22393c9120db5c77a801adecfaf4fe16.html
9.data什么意思及同义词翻译data的意思用法同义词例句沪江词库精选data是什么意思、英语单词推荐、用法及解释、中英文句子翻译、英语短语 英音 ['deit?] ; 美音 ['dɑ:t?] ; 名词1.不可数名词: 数据;资料;材料2.不可数名词:(储存在计算机中的)数据资料3. datum的复数 单词分析 这些名词都含有“资料、信息”之意。information和data作“资料”解时,https://www.hujiang.com/ciku/Data/
10.data什么意思及同义词翻译data的意思四级英语词汇3. datum的复数 单词分析 这些名词都含有“资料、信息”之意。information和data作“资料”解时,前者仅指所获得、提供或描述的慨况,而不指具体的数据或资料,后者则指具体的资料。data是datum的复数形式,本义指作为计算和测量基础的资料。 message指通过书写、谈话和信号等方式所进行的通讯“信息”。 英语解释 https://www.isixue.com/article/400863/
11.词汇精选:data的用法和辨析词汇精选:data的用法和辨析 一、详细释义: n. data的单数;数据,资料 例句: Each datum has a unique key. 每个数据都有一个独特的键。 例句: Let's get back to the datum to be explained. 让我们回到要解释的这份资料。 二、相关短语: sense datumhttps://www.hjenglish.com/new/p801169/
12.WaterDatumNOAA CO-OPS is the source for Water Datum Data and it can be found on their website Specific questions about Water Datums should be directed to the CO-OPS Datums team at the following email address: nos.coops.datums@noaa.gov Direct links to Louisiana Tide Stations 8761108 BAY GARDENE, http://c4g.lsu.edu/index.php/about-us/research-projects/water-datums
13.data是什么意思data在线翻译英语读音用法例句data的英文翻译是什么意思,词典释义与在线翻译: 详尽释义 n.(名词) 资料,材料 数据,数据资料,数字(datum的复数) 论据 事实,知识 已知条件 信息 已知数 查看更多 双解释义 英英释义 data的用法和样例: 例句 用作名词 (n.) The data should be updated once a week. https://dict.cn/data
14.data是什么意思data中文意思data英译汉“data”的中文翻译 词典解释 美音:[ ] 英音:[ ] 名词n. 1. 资料,数据(datum的复数) 相关词语 database management systemdatabase reporting softwaredatabase user interface and query softwaredatabusdatacommunication protocoldatacompression softwaredataconversion softwareData Encryptiondataencryption softwareData https://tran.httpcn.com/Html/EnglishtoChinese/24/data_pwililpwazuypwkoilmepw.html
15.DATUMDefinition&MeaningMerriamThe meaning of DATUM is something given or admitted especially as a basis for reasoning or inference. How to use datum in a sentence. Is data singular or plural?: Usage Guidehttps://www.merriam-webster.com/dictionary/datum
16.DATUMdatum在《牛津英西词典》中的词汇 单语范例(未经PONS编辑处理) datum在《牛津英西词典》中的词汇 词条datum在英语?西班牙语中的译文 datum<pldata>[美?de?d?m,?d?d?m,英?de?t?m]名词书 datum datom 参见:data data[美,,英]plof名词 https://zh.pons.com/%E7%BF%BB%E8%AF%91/%E8%8B%B1%E8%AF%AD-%E8%A5%BF%E7%8F%AD%E7%89%99%E8%AF%AD/datum
17.每日单词整理1. a clear appearance. 2. A manifestation of disease. Everything has some external physicalmanifestation. Depression has physicalmanifestationinside the brain. He say his new job is anothermanifestationof his dedication to his community. 4 statistic =data point =datum statistic data https://m.douban.com/note/782278150/
18.data是什么意思data怎么读data翻译dataprocessing is from 1954. 展开全部 双语例句 1. "Data" is the Latin plural form of "datum".data在拉丁文中是datum的复数形式。 2. If they value thesedata, let them pay for them. 他们要是看重这些数据,就让他们出钱买。 3. We gained a rich supply ofdatawhich would normally be inaccessibhttps://www.kaoyan365.cn/dict/data.html