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 相关文章推荐
jquery png 透明解决方案(推荐)
Aug 21 Javascript
Jquery 动态循环输出表格具体方法
Nov 23 Javascript
JavaScript学习笔记之Function对象
Jan 22 Javascript
BootStrap初学者对弹出框和进度条的使用感觉
Jun 27 Javascript
购物车前端开发(jQuery和bootstrap3)
Aug 27 Javascript
获取当前月(季度/年)的最后一天(set相关操作及应用)
Dec 27 Javascript
jQuery实现的简单排序功能示例【冒泡排序】
Jan 13 Javascript
js下拉菜单生成器dropMenu使用方法详解
Aug 01 Javascript
vue使用mint-ui实现下拉刷新和无限滚动的示例代码
Nov 06 Javascript
解决node修改后需频繁手动重启的问题
May 13 Javascript
通过jquery toggleClass()属性制作文章段落更改背景颜色
May 21 jQuery
浅析Angular 实现一个repeat指令的方法
Jul 21 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使用GIFEncoder类处理gif图片实例
2014/07/01 PHP
php使用$_POST或$_SESSION[]向js函数传参
2014/09/16 PHP
ThinkPHP3.2.3实现分页的方法详解
2016/06/03 PHP
php实现基于openssl的加密解密方法
2016/09/30 PHP
bindParam和bindValue的区别以及在Yii2中的使用详解
2018/03/12 PHP
图片完美缩放
2006/09/07 Javascript
Javascript/Jquery——简单定时器的多种实现方法
2013/07/03 Javascript
Array栈方法和队列方法的特点说明
2014/01/24 Javascript
js解决select下拉选不中问题
2014/10/14 Javascript
JS访问DOM节点方法详解
2016/11/29 Javascript
微信小程序 支付后台java实现实例
2017/05/09 Javascript
Easyui ueditor 整合解决不能编辑的问题(推荐)
2017/06/25 Javascript
React/Redux应用使用Async/Await的方法
2017/11/16 Javascript
vue slots 组件的组合/分发实例
2018/09/06 Javascript
iview实现select tree树形下拉框的示例代码
2018/12/21 Javascript
深入解析vue 源码目录及构建过程分析
2019/04/24 Javascript
python 开发的三种运行模式详细介绍
2017/01/18 Python
python 利用for循环 保存多个图像或者文件的实例
2018/11/09 Python
python 执行终端/控制台命令的例子
2019/07/12 Python
Django+zTree构建组织架构树的方法
2019/08/21 Python
Python小程序 控制鼠标循环点击代码实例
2019/10/08 Python
浅谈django 模型类使用save()方法的好处与注意事项
2020/03/28 Python
pycharm 实现本地写代码,服务器运行的操作
2020/06/08 Python
使用分层画布来优化HTML5渲染的教程
2015/05/08 HTML / CSS
Supersmart英国:欧洲市场首批食品补充剂供应商之一
2018/05/05 全球购物
介绍一下Java的安全机制
2012/06/28 面试题
软件测试英文面试题
2012/10/14 面试题
管理学专业个人求职信范文
2013/12/13 职场文书
幼儿园家长寄语
2014/04/02 职场文书
勤俭节约倡议书
2014/04/14 职场文书
团队拓展活动总结
2014/08/27 职场文书
公司授权委托书样本
2014/09/15 职场文书
2014年药房工作总结
2014/11/22 职场文书
成本会计岗位职责
2015/02/03 职场文书
义卖募捐活动总结
2015/05/09 职场文书
2015年敬老院工作总结
2015/05/18 职场文书