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 相关文章推荐
Js放到HTML文件中的哪个位置有什么区别
Aug 21 Javascript
node.js中的fs.existsSync方法使用说明
Dec 17 Javascript
JavaScript实现把rgb颜色转换成16进制颜色的方法
Jun 01 Javascript
readonly和disabled属性的区别
Jul 26 Javascript
详解JavaScript逻辑And运算符
Dec 04 Javascript
js实现分页功能
May 24 Javascript
移动端效果之Swiper详解
Oct 09 Javascript
vue-star评星组件开发实例
Mar 01 Javascript
Vue实现搜索 和新闻列表功能简单范例
Mar 16 Javascript
Vue 页面切换效果之 BubbleTransition(推荐)
Apr 08 Javascript
使用 node.js 模仿 Apache 小部分功能
Jul 07 Javascript
解决layui轮播图有数据不显示的情况
Sep 16 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
全国FM电台频率大全 - 17 湖北省
2020/03/11 无线电
如何用phpmyadmin设置mysql数据库用户的权限
2012/01/09 PHP
extjs关于treePanel+chekBox全部选中以及清空选中问题探讨
2013/04/02 Javascript
IE、FF、Chrome浏览器中的JS差异介绍
2013/08/13 Javascript
Javascript基础 函数“重载” 详细介绍
2013/10/25 Javascript
js 自动播放的实例代码
2013/11/19 Javascript
jquery easyui 结合jsp简单展现table数据示例
2014/04/18 Javascript
Ext4.2的Ext.grid.plugin.RowExpander无法触发事件解决办法
2014/08/15 Javascript
js实现屏幕自适应局部代码分享
2015/01/30 Javascript
Javascript中使用A标签获取当前目录的绝对路径方法
2015/03/02 Javascript
javascript中call apply 的应用场景
2015/04/16 Javascript
jquery插件jquery.dragscale.js实现拖拽改变元素大小的方法(附demo源码下载)
2016/02/25 Javascript
vue之nextTick全面解析
2017/05/17 Javascript
JavaScript标准对象_动力节点Java学院整理
2017/06/27 Javascript
Angular2实现组件交互的方法分析
2017/12/19 Javascript
理解Koa2中的async&amp;await的用法
2018/02/05 Javascript
微信小程序时间选择插件使用详解
2018/12/28 Javascript
详解vue-cli3多页应用改造
2019/06/04 Javascript
vue 实现click同时传入事件对象和自定义参数
2021/01/29 Vue.js
[40:17]2018DOTA2亚洲邀请赛 4.5 淘汰赛 LGD vs Liquid 第一场
2018/04/06 DOTA
wxPython 入门教程
2008/10/07 Python
Python的时间模块datetime详解
2017/04/17 Python
Python二叉树的镜像转换实现方法示例
2019/03/06 Python
运用PyTorch动手搭建一个共享单车预测器
2019/08/06 Python
pytorch下使用LSTM神经网络写诗实例
2020/01/14 Python
python 函数中的参数类型
2020/02/11 Python
Python3之乱码\xe6\x97\xa0\xe6\xb3\x95处理方式
2020/05/11 Python
keras分类之二分类实例(Cat and dog)
2020/07/09 Python
html2canvas生成清晰的图片实现打印的示例代码
2019/09/30 HTML / CSS
2014年五一促销活动方案
2014/03/09 职场文书
老干部工作汇报材料
2014/10/28 职场文书
2014年保洁工作总结
2014/11/24 职场文书
2014年林业工作总结
2014/12/05 职场文书
深度学习详解之初试机器学习
2021/04/14 Python
Python selenium模拟网页点击爬虫交管12123违章数据
2021/05/26 Python
Python中的matplotlib绘制百分比堆叠柱状图,并为每一个类别设置不同的填充图案
2022/04/20 Python