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学习2 选择器的使用说明
Feb 07 Javascript
基于jquery的高性能td和input切换并可修改内容实现代码
Jan 09 Javascript
Javascript 赋值机制详解
Nov 23 Javascript
js实现鼠标点击文本框自动选中内容的方法
Aug 20 Javascript
深入JavaScript高级程序设计之对象、数组(栈方法,队列方法,重排序方法,迭代方法)
Dec 01 Javascript
在vue-cli中组件通信的方法
Dec 16 Javascript
原生JS进行前后端同构
Apr 22 Javascript
详解Vue项目在其他电脑npm run dev运行报错的解决方法
Oct 29 Javascript
利用原生JavaScript实现造日历轮子实例代码
May 08 Javascript
前端Electron新手入门教程详解
Jun 21 Javascript
vue移动端写的拖拽功能示例代码
Sep 09 Javascript
详解基于element的区间选择组件校验(交易金额)
Jan 07 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
json的键名为数字时的调用方式(示例代码)
2013/11/15 PHP
PHP执行linux命令常用函数汇总
2016/02/02 PHP
php实现在新浪云中使用imagick生成缩略图并上传的方法
2016/09/26 PHP
JavaScript 脚本将当地时间转换成其它时区
2009/03/19 Javascript
javascript 二分法(数组array)
2010/04/24 Javascript
基于JavaScript 数据类型之Boolean类型分析介绍
2013/04/19 Javascript
js内存泄露的几种情况详细探讨
2013/05/31 Javascript
js实现获取当前时间是本月第几周的方法
2015/08/11 Javascript
基于Javascript实现倒计时功能
2016/02/22 Javascript
AngularJS基础 ng-click 指令示例代码
2016/08/01 Javascript
微信小程序 选择器(时间,日期,地区)实例详解
2016/11/16 Javascript
Javascript中字符串相关常用的使用方法总结
2017/03/13 Javascript
Vue项目中如何引入icon图标
2018/03/28 Javascript
js Element Traversal规范中的元素遍历方法
2018/04/19 Javascript
又拍云 Node.js 实现文件上传、删除功能
2018/10/28 Javascript
Egg Vue SSR 服务端渲染数据请求与asyncData
2019/11/24 Javascript
JavaScript 异步时序问题
2020/11/20 Javascript
python进阶教程之循环对象
2014/08/30 Python
Python2.x版本中cmp()方法的使用教程
2015/05/14 Python
Python编程中使用Pillow来处理图像的基础教程
2015/11/20 Python
Python配置mysql的教程(推荐)
2017/10/13 Python
对tf.reduce_sum tensorflow维度上的操作详解
2018/07/26 Python
解决django中ModelForm多表单组合的问题
2019/07/18 Python
Python collections模块使用方法详解
2019/08/28 Python
如何用 Python 处理不平衡数据集
2021/01/04 Python
css3中less实现文字长阴影(long shadow)
2020/04/24 HTML / CSS
突袭HTML5之Javascript API扩展4—拖拽(Drag/Drop)概述
2013/01/31 HTML / CSS
HTML如何让IMG自动适应DIV容器大小的实现方法
2020/02/25 HTML / CSS
Hello Molly美国:女性时尚在线
2019/08/26 全球购物
贷款委托书怎么写
2014/08/02 职场文书
公司离职证明范本(汇总)
2014/09/10 职场文书
党的群众路线教育实践活动个人整改措施
2014/10/27 职场文书
2014年客房服务员工作总结
2014/11/18 职场文书
详解CSS玩转图片Base64编码
2021/05/25 HTML / CSS
详解Spring事件发布与监听机制
2021/06/30 Java/Android
MySql数据库触发器使用教程
2022/06/01 MySQL