D3.js 从P元素的创建开始(显示可加载数据)


Posted in Javascript onOctober 30, 2014

D3是一个基于数据操作的可视化js库,认识d3,就从最基础的显示可加载数据谈起。

html的基本框架不多说,先上代码再解释:

新建一个test目录,在该目录下创建demo和d3两个文件夹。demo存放要编写的html文件 , d3存放d3.v3.js

在demo文件夹下新建indexP.html,将下面代码复制其中,双击在浏览器打开查看效果。

<!DOCTYPE html> 
<html lang="en"> 
<head> 
<meta charset="utf-8"> 
<title>D3: Setting paragraphs' style conditionally, based on data</title> 
<script type="text/javascript" src="../d3/d3.v3.js"></script> 
</head> 
<body> 
<script type="text/javascript"> 

var dataset = [ 5, 10, 15, 20, 25 ]; 

d3.select("body").selectAll("p") 
.data(dataset) 
.enter() 
.append("p") 
.text(function(d) { 
return "I can count up to " + d; 
}) 
.style("color", function(d) { 
if (d > 15) { //Threshold of 15 
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) {}) 对每个段落的显示内容,写个匿名函数控制,一般返回字符串。在该方法你可以 任意编写,

本例让他每段落输出I can count up to 加上相应数组元素值

函数格式是固定的,function(d)只有这样,才能将数据加载到函数中。

.style("color","") 设置css的文本颜色属性,同text一样,设置的字符串都可以用function进行你想要的操作。本例中,如果该段落所对应的传入数值大于15,就把该行变红

最后,我们看到的效果就是如图:

D3.js 从P元素的创建开始(显示可加载数据)

本文就介绍到这里,下文介绍如何在SVG中绘制圆,以及圆圆相连的简单用力图

Javascript 相关文章推荐
Javascript 日期处理之时区问题
Oct 08 Javascript
js函数调用常用方法详解
Dec 03 Javascript
js文本框输入点回车触发确定兼容IE、FF等
Nov 19 Javascript
Node.js中使用计时器定时执行函数详解
Aug 15 Javascript
Jquery和Js获得元素标签名称的方法总结
Oct 08 Javascript
jQuery设置和获取select、checkbox、radio的选中值方法
Jan 01 Javascript
react-native 封装选择弹出框示例(试用ios&amp;android)
Jul 11 Javascript
clipboard.js在移动端复制失败的解决方法
Jun 13 Javascript
JQuery的加载和选择器用法简单示例
May 13 jQuery
ES6中的class是如何实现的(附Babel编译的ES5代码详解)
May 17 Javascript
封装微信小程序http拦截器过程解析
Aug 13 Javascript
带你彻底理解JavaScript中的原型对象
Apr 14 Javascript
jquery 获取 outerHtml 包含当前节点本身的代码
Oct 30 #Javascript
如何调试异步加载页面里包含的js文件
Oct 30 #Javascript
fckeditor粘贴Word时弹出窗口取消的方法
Oct 30 #Javascript
js中style.display=&quot;&quot;无效的解决方法
Oct 30 #Javascript
Js实现网页键盘控制翻页的方法
Oct 30 #Javascript
javascript实现iframe框架延时加载的方法
Oct 30 #Javascript
js中iframe调用父页面的方法
Oct 30 #Javascript
You might like
php 字符串替换的方法
2012/01/10 PHP
详解WordPress中过滤链接与过滤SQL语句的方法
2015/12/18 PHP
CodeIgniter基于Email类发邮件的方法
2016/03/29 PHP
php设计模式之观察者模式定义与用法经典示例
2019/09/19 PHP
JavaScript中清空数组的三种方法分享
2011/04/07 Javascript
jQuery Pagination Ajax分页插件(分页切换时无刷新与延迟)中文翻译版
2013/01/11 Javascript
javascript修改表格背景色实例代码分享
2013/12/10 Javascript
javascript的propertyIsEnumerable()方法使用介绍
2014/04/09 Javascript
JavaScript自定义数组排序方法
2015/02/12 Javascript
javascript中eval函数用法分析
2015/04/25 Javascript
如何解决easyui自定义标签 datagrid edit combobox 手动输入保存不上
2015/12/26 Javascript
限制文本框只能输入数字||只能是数字和小数点||只能是整数和浮点数
2016/05/27 Javascript
Angularjs实现搜索关键字高亮显示效果
2017/01/17 Javascript
webpack多入口文件页面打包配置详解
2018/01/09 Javascript
vue实现记事本功能
2019/06/26 Javascript
js变量值传到php过程详解 将php解析成数据
2019/06/26 Javascript
nodejs语言实现验证码生成功能的示例代码
2019/10/13 NodeJs
js 动态校验开始结束时间的实现代码
2020/05/25 Javascript
Python实现给文件添加内容及得到文件信息的方法
2015/05/28 Python
django 按时间范围查询数据库实例代码
2018/02/11 Python
python散点图实例之随机漫步
2018/08/27 Python
python中break、continue 、exit() 、pass终止循环的区别详解
2019/07/08 Python
pytorch神经网络之卷积层与全连接层参数的设置方法
2019/08/18 Python
Python MySQLdb 执行sql语句时的参数传递方式
2020/03/04 Python
python3.x中安装web.py步骤方法
2020/06/23 Python
Urban Outfitters美国官网:美国生活方式品牌
2016/08/26 全球购物
意大利体育用品和运动服网上商店:Maxi Sport
2019/09/14 全球购物
英国在线药房和在线医生:LloydsPharmacy
2019/10/21 全球购物
班级聚会策划书
2014/01/16 职场文书
社会实践评语
2014/04/28 职场文书
8和9的加减法教学反思
2014/05/01 职场文书
第二批党的群众路线教育实践活动个人整改方案
2014/10/31 职场文书
2015年银行工作总结范文
2015/04/01 职场文书
寻找成龙观后感
2015/06/12 职场文书
校长新学期致辞
2015/07/30 职场文书
简单聊聊Golang中defer预计算参数
2022/03/25 Golang