D3.js 从P元素的创建开始

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,就把该行变红

     

         最后,我们看到的效果就是如图:

       

      本文就介绍到这里,下文介绍如何在SVG中绘制圆,以及圆圆相连的简单用力图

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值