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的ajax()函数传值中文乱码解决方法介绍
Nov 08 Javascript
JSCode all of Brower 全局屏蔽网页右键功能 具体实现
Jun 05 Javascript
简约JS日历控件 实例代码
Jul 12 Javascript
jquery利用ajax调用后台方法实例
Aug 23 Javascript
jquery 中的each()跳出循环的语句
May 23 Javascript
推荐JavaScript实现继承的最佳方式
Nov 11 Javascript
基于jquery实现日历签到功能
Sep 11 Javascript
详解页面滚动值scrollTop在FireFox与Chrome浏览器间的兼容问题
Dec 03 Javascript
老生常谈 js中this的指向
Jun 30 Javascript
基于jquery实现多级菜单效果
Jul 25 jQuery
jQuery实现定时隐藏对话框的方法分析
Feb 12 jQuery
JS实现的图片选择顺序切换和循环切换功能示例【测试可用】
Dec 28 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巧获服务器端信息
2006/12/06 PHP
深入理解PHP原理之Session Gc的一个小概率Notice
2011/04/12 PHP
PHP集成百度Ueditor 1.4.3
2014/11/23 PHP
PHP中调用C/C++制作的动态链接库的教程
2016/03/10 PHP
Smarty简单生成表单元素的方法示例
2016/05/23 PHP
laravel框架 laravel-admin上传图片到oss的方法
2019/10/13 PHP
js不完美解决click和dblclick事件冲突问题
2012/07/16 Javascript
js文本框输入内容智能提示效果
2015/12/02 Javascript
jQuery旋转木马式幻灯片轮播特效
2015/12/04 Javascript
第五章之BootStrap 栅格系统
2016/04/25 Javascript
JavaScript的React Web库的理念剖析及基础上手指南
2016/05/10 Javascript
文件上传,iframe跨域数据提交的实现
2016/11/18 Javascript
JavaScript实现瀑布流以及加载效果
2017/02/11 Javascript
vue 如何添加全局函数或全局变量以及单页面的title设置总结
2017/06/01 Javascript
JS沙箱模式实例分析
2017/09/04 Javascript
详解关于html,css,js三者的加载顺序问题
2019/04/10 Javascript
JavaScript前端页面搜索功能案例【基于jQuery】
2019/07/10 jQuery
解决mui框架中switch开关通过js控制开或者关状态时小圆点不动的问题
2019/09/03 Javascript
使用layui的router来进行传参的实现方法
2019/09/06 Javascript
[01:29]2014DOTA2展望TI 剑指西雅图DK战队专访
2014/06/30 DOTA
Python中的类与对象之描述符详解
2015/03/27 Python
python中Genarator函数用法分析
2015/04/08 Python
深入Python函数编程的一些特性
2015/04/13 Python
python插入排序算法实例分析
2015/07/03 Python
python 全局变量的import机制介绍
2017/09/07 Python
基于Django用户认证系统详解
2018/02/21 Python
Python使用Pickle库实现读写序列操作示例
2018/06/15 Python
python在回调函数中获取返回值的方法
2019/02/22 Python
python代码中怎么换行
2020/06/17 Python
海蓝之谜英国官网:La Mer英国
2020/01/15 全球购物
便利店的创业计划书
2014/01/15 职场文书
健康家庭事迹材料
2014/05/02 职场文书
天河观后感
2015/06/11 职场文书
警示教育片观后感
2015/06/17 职场文书
CSS使用伪类控制边框长度的方法
2022/01/18 HTML / CSS
DE1107机评
2022/04/05 无线电