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 相关文章推荐
Iframe 自适应高度并实时监控高度变化的js代码
Oct 30 Javascript
checkbox使用示例
Aug 23 Javascript
使用JavaScript 实现的人脸检测
Mar 24 Javascript
javascript 使用for循环时该注意的问题-附问题总结
Aug 19 Javascript
基于jquery实现select选择框内容左右移动添加删除代码分享
Aug 25 Javascript
把JavaScript代码改成ES6语法不完全指南(分享)
Sep 10 Javascript
React Native之prop-types进行属性确认详解
Dec 19 Javascript
javascript将json格式数组下载为excel表格的方法
Dec 22 Javascript
浅谈angular表单提交中ng-submit的默认使用方法
Sep 30 Javascript
vue实现页面内容禁止选中功能,仅输入框和文本域可选
Nov 09 Javascript
基于JS+HTML实现弹窗提示是否确认提交功能
Jun 17 Javascript
VUE使用axios调用后台API接口的方法
Aug 03 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递归列出所有文件和目录的代码
2008/09/10 PHP
用php实现百度网盘图片直链的代码分享
2012/11/01 PHP
深入理解:单一入口、MVC、ORM、CURD、ActiveRecord概念
2013/06/06 PHP
PHP中的print_r 与 var_dump 输出数组
2016/06/13 PHP
php工具型代码之印章抠图
2018/07/18 PHP
php设计模式之职责链模式实例分析【星际争霸游戏案例】
2020/03/27 PHP
JavaScript Cookie的读取和写入函数
2009/12/08 Javascript
JS遮罩层效果 兼容ie firefox jQuery遮罩层
2010/07/26 Javascript
解决jquery异步按一定的时间间隔刷新问题
2012/12/10 Javascript
纯JavaScript实现HTML5 Canvas六种特效滤镜示例
2013/06/28 Javascript
登陆成功后自动计算秒数执行跳转
2014/01/23 Javascript
jQuery验证插件 Validate详解
2014/11/20 Javascript
基于jQuery实现火焰灯效果导航菜单
2017/01/04 Javascript
JavaScript的事件机制详解
2017/01/17 Javascript
jQuery按需加载轮播图(web前端性能优化)
2017/02/17 Javascript
angularjs中使用ng-bind-html和ng-include的实例
2017/04/28 Javascript
详解AngularJS脏检查机制及$timeout的妙用
2017/06/19 Javascript
详解vue中使用express+fetch获取本地json文件
2017/10/10 Javascript
jquery+ajaxform+springboot控件实现数据更新功能
2018/01/22 jQuery
ES6 对象的新功能与解构赋值介绍
2019/02/05 Javascript
详解jQuery-each()方法
2019/03/13 jQuery
JS中的函数与对象的创建方式
2019/05/12 Javascript
基于Echarts图表在div动态切换时不显示的解决方式
2020/07/20 Javascript
Python with用法实例
2015/04/14 Python
详解Python中__str__和__repr__方法的区别
2015/04/17 Python
python在windows下创建隐藏窗口子进程的方法
2015/06/04 Python
使用Python来做一个屏幕录制工具的操作代码
2020/01/18 Python
Python Tkinter Entry和Text的添加与使用详解
2020/03/04 Python
详解Python 中的 defaultdict 数据类型
2021/02/22 Python
css3进阶之less实现星空动画的示例代码
2019/09/10 HTML / CSS
Marriott中国:万豪国际酒店查询预订
2016/09/02 全球购物
英语系本科生个人求职信
2013/09/21 职场文书
闭幕式主持词
2014/04/02 职场文书
导游词之杭州岳王庙
2019/11/13 职场文书
go 原生http web 服务跨域restful api的写法介绍
2021/04/27 Golang
如何在向量化NumPy数组上进行移动窗口
2021/05/18 Python