D3.js从P元素的创建开始(显示可加载数据)
D3是一个基于数据操作的可视化js库,认识d3,就从最基础的显示可加载数据谈起。
html的基本框架不多说,先上代码再解释:
新建一个test目录,在该目录下创建demo和d3两个文件夹。demo存放要编写的html文件,d3存放d3.v3.js
在demo文件夹下新建indexP.html,将下面代码复制其中,双击在浏览器打开查看效果。
<!DOCTYPEhtml> <htmllang="en"> <head> <metacharset="utf-8"> <title>D3:Settingparagraphs"styleconditionally,basedondata</title> <scripttype="text/javascript"src="../d3/d3.v3.js"></script> </head> <body> <scripttype="text/javascript"> vardataset=[5,10,15,20,25]; d3.select("body").selectAll("p") .data(dataset) .enter() .append("p") .text(function(d){ return"Icancountupto"+d; }) .style("color",function(d){ if(d>15){//Thresholdof15 return"red"; }else{ return"black"; } }); </script> </body> </html>
这个简单demo实现的功能:在body中添加p标签,在p标签中添加d3加载的文本内容,并根据函数设置条件对文字颜色进行调整。
上面的网页代码,body里面的js代码,是展现到页面的数据操作。以后的不少例子,只要修改这一块便可,其他部分可看做页面框架。
这里的内容上篇文章大体都讲到了,使用d3的连缀,将同一对象的一步步数据操作连接起来,便于维护。
d3.select("body")选择body元素,并连缀到下一方法
.selectAll("p")选中所有段落
.data(dataset)解析加载数组数据,该数组长度是5,以后连缀的每个方法都将执行五次,按数组下标依次针对数组元素执行方法操作
.enter()创建新的绑定数据的占位元素(相当于创建暂时不知名标签5个)。
创建的个数要根据选择的已有标签数和加载的数据数组长度决定。
如本例,如果body中p标签少于5个,就创建(现在body中p为0个,故创建5个),
多于就不创建,最后的占位元素和p元素总个数要为5。
.append("p")将占位元素改为p元素
.text(function(d){})对每个段落的显示内容,写个匿名函数控制,一般返回字符串。在该方法你可以任意编写,
本例让他每段落输出Icancountupto加上相应数组元素值
函数格式是固定的,function(d)只有这样,才能将数据加载到函数中。
.style("color","")设置css的文本颜色属性,同text一样,设置的字符串都可以用function进行你想要的操作。本例中,如果该段落所对应的传入数值大于15,就把该行变红
最后,我们看到的效果就是如图:
本文就介绍到这里,下文介绍如何在SVG中绘制圆,以及圆圆相连的简单用力图
相关文章
- 使用 Dapr JS SDK 让 Nest.js 集成 Dapr(微软开源的分布式应用程序运行时)
- 【说站】js变量作用域是什么
- JS面试题-js新增基本数据类型BigInt
- js定时器与延时器_JS做定时器倒计时
- js 数组去除重复数据-当WPS开始像支持VBA一样支持JS语言时,微软又该何去何从?
- js 数组去除重复数据-Vue.js开发移动端经验总结
- JS中innerHTML、outerHTML、innerText、outerText的用法与区别详解编程语言
- HTML JS 数据校验详解编程语言
- JS RegExp的实例属性(成员属性)和静态属性
- Node.js 10.0.0 正式版发布 大量改进和修复
- 用SQL Server和JS实现数据库管理技术(sqlserver.js)
- JS技术连接Oracle数据库实现数据交互(js连接oracle实例)
- JS将文件传输至MySQL数据库(.js传文件至mysql)
- 注释的艺术——JS里直接写HTML,无需转义
- 关于文本限制字数的js代码
- JS巧妙获取剪贴板数据Excel数据的粘贴
- JS函数验证总结(方便js客户端输入验证)
- js延迟加载改变JS的位置加快网页加载速度
- 利用js进行输入框自动匹配字符的小例子
- js判断输入是否为数字的具体实例
- JS将所有对象s的属性复制给对象r(原生js+jquery)
- js实现div弹出层的方法
- JS判断变量是否为空判断是否null
- 直接在JS里创建JSON数据然后遍历使用