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 相关文章推荐
prototype Element学习笔记(篇二)
Oct 26 Javascript
Ext第一周 史上最强学习笔记---GridPanel(基础篇)
Dec 29 Javascript
TextArea 控件的最大长度问题(js json)
Dec 16 Javascript
JavaScript EasyPager 分页函数
May 25 Javascript
JS实用的动画弹出层效果实例
May 05 Javascript
原生JavaScript实现Ajax的方法
Apr 07 Javascript
bootstrap 设置checkbox部分选中效果
Apr 20 Javascript
input输入框内容实时监测(附代码)
Aug 15 Javascript
高性能的javascript之加载顺序与执行原理篇
Jan 14 Javascript
React 使用Hooks简化受控组件的状态绑定
Mar 18 Javascript
Koa从零搭建到Api实现项目的搭建方法
Jul 30 Javascript
JS数组的常用10种方法详解
May 08 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
4.与数据库的连接
2006/10/09 PHP
火车采集器 免费版使出收费版本功能实现原理
2009/09/17 PHP
PHP获取文件夹大小函数用法实例
2015/07/01 PHP
PHP 读取文本文件内容并分页显示
2016/01/02 PHP
浅谈PHP的反射API
2017/02/26 PHP
PHP面向对象类型约束用法分析
2019/06/12 PHP
Javascript &amp; DHTML 实例编程(教程)(三)初级实例篇1—上传文件控件实例
2007/06/02 Javascript
HTML 自动伸缩的表格Table js实现
2009/04/01 Javascript
JQuery 文本框使用小结
2010/05/22 Javascript
某页码显示的helper 少量调整,另附js版
2010/09/12 Javascript
jQuery插件原来如此简单 jQuery插件的机制及实战
2012/02/07 Javascript
JavaScript 常见安全漏洞和自动化检测技术
2015/08/21 Javascript
JS实现的自定义水平滚动字体插件完整实例
2016/06/17 Javascript
深入理解JavaScript中的for循环
2017/02/07 Javascript
Angular.js中$resource高大上的数据交互详解
2017/07/30 Javascript
JS中创建自定义类型的常用模式总结【工厂模式,构造函数模式,原型模式,动态原型模式等】
2019/01/19 Javascript
[02:56]DOTA2亚洲邀请赛 VG出场战队巡礼
2015/02/07 DOTA
python绘制直线的方法
2018/06/30 Python
Python基础之条件控制操作示例【if语句】
2019/03/23 Python
python查找重复图片并删除(图片去重)
2019/07/16 Python
Flask框架模板继承实现方法分析
2019/07/31 Python
numpy按列连接两个维数不同的数组方式
2019/12/06 Python
Python综合应用名片管理系统案例详解
2020/01/03 Python
Python 定义只读属性的实现方式
2020/03/05 Python
最好的意大利皮夹克:D’Arienzo
2018/12/04 全球购物
经济信息管理专业大学生求职信
2013/09/27 职场文书
优秀演讲稿范文
2013/12/29 职场文书
优秀员工表扬信
2014/01/17 职场文书
迟到早退检讨书
2014/02/10 职场文书
部队党性分析材料
2014/02/16 职场文书
个人授权委托书范文
2014/09/21 职场文书
公司向个人借款协议书范本
2014/10/09 职场文书
2014年医院工作总结
2014/11/20 职场文书
成本会计岗位职责
2015/02/03 职场文书
python 爬取哔哩哔哩up主信息和投稿视频
2021/06/07 Python
React Fragment介绍与使用详解
2021/11/11 Javascript