d3.js <一>

  1 <html>
  2   <head>
  3         <meta charset="utf-8">
  4         <title>HelloWorld</title>
  5   </head>
  6     <body>
  7         <p>Hello World 1</p>
  8         <p>Hello World 2</p>
  9 <!--         <p>Hello World 1</p>
 10         <p>Hello World 2</p> -->
 11         <div id="con"></div>
 12         <div id="chart01"></div>
 13         <bottom><button type="button" onclick="myadd()">add</button><button type="button" onclick="mysort()">sort</button></bottom>
 14         <script src="./jquery-2.1.4.min.js" charset="utf-8"></script>
 15         <script src="./d3.js" charset="utf-8"></script>
 16         <script>
 17            // var p = d3.select("body").selectAll("p");
 18            // // p.datum("Thunder").append("span").text(function(d, i) {
 19            // //  return d + " " + i;
 20            // // });
 21
 22            //  var dataset = [{"id":1, "name":"张三"},
 23            //  {"id":2, "name":"张三2"},
 24            //  {"id":3, "name":"张三3"},
 25            //  {"id":4, "name":"张三4"}];
 26            //  var update = p.data(dataset);
 27
 28            //  update.text(function(d) {
 29            //     return d.id + "--" + d.name;
 30            //  });
 31
 32            //  update.enter().append("p").text(function(d) {
 33            //     return d.id + "--" + d.name;
 34            //  });
 35
 36            //  var condiv = d3.select(document.getElementById("con"));
 37
 38            //  condiv.selectAll("span").data(dataset).enter().append("span").text(function(d) {
 39            //     return d.id + "---" + d.name;
 40            //  });
 41
 42            //  var numbers = [12, 23, 25, 67, 5, 26, 19, 8];
 43            //  console.log(d3.min(numbers, function(d) {return d * 3;}));
 44            //  console.log(d3.max(numbers));
 45            //  console.log(d3.extent(numbers, function(d) {
 46            //     return d % 3;
 47            //  }));
 48            //  console.log(d3.sum(numbers));
 49
 50            //  console.log(d3.mean(numbers));
 51
 52            //  console.log(d3.median(numbers));
 53            //  console.log(numbers.sort(d3.ascendind));
 54            //  console.log(d3.quantile(numbers, 19.0));
 55             // p.data(dataset, function(d) {return d.id;}).text(function(d) {
 56             //    return d.id + " " + d.name;
 57             // });
 58             // console.log(update);
 59             // console.log(update.enter());
 60             // console.log(update.exit());
 61
 62            // console.log(p);
 63             var dataset = [30, 45, 23, 69, 160, 55, 99];
 64             var chart01 = d3.select(document.getElementById("chart01"));
 65             var width = 800;
 66             var height = 400;
 67             var padding = {"top": 20, "right": 20, "left": 20, "bottom": 20};
 68             var rectStep = 55;
 69             var rectWidth = 45;
 70
 71             var svg = chart01
 72                .append("svg")
 73                .attr("width", width)
 74                .attr("height", height);
 75
 76             var rect = svg.selectAll("rect")
 77                .data(dataset)
 78                .enter()
 79                .append("rect")
 80                .attr("fill", "steelblue")
 81                .attr("x", function(d, i) {
 82                   return padding.left + i * rectStep;
 83                })
 84                .attr("y", function(d) {
 85                   return height - padding.bottom - d;
 86                })
 87                .attr("width", rectWidth)
 88                .attr("height", function(d) {
 89                   return d;
 90                });
 91
 92             var text = svg.selectAll("text")
 93                .data(dataset)
 94                .enter()
 95                .append("text")
 96                .attr("text-anchor", "middle")
 97                .attr("fill", "white")
 98                .attr("x", function(d, i) {
 99                   return padding.left + i * rectStep;
100                })
101                .attr("y", function(d) {
102                   return height - padding.bottom - d;
103                })
104                .attr("width", rectWidth)
105                .attr("height", function(d) {
106                   return d;
107                })
108                .attr("dx", rectWidth/2)
109                .attr("dy", "1em")
110                .text(function(d) {
111                   return d;
112                });
113
114             function redraw(dataset) {
115                var updateRect = svg.selectAll("rect").data(dataset);
116                var enterRect = updateRect.enter();
117                var exitRect = updateRect.exit();
118
119                var updateText = svg.selectAll("text").data(dataset);
120                var enterText = updateText.enter();
121                var exitText = updateText.exit();
122
123                updateRect.attr("fill", "steelblue")
124                .attr("x", function(d, i) {
125                   return padding.left + i * rectStep;
126                })
127                .attr("y", function(d) {
128                   return height - padding.bottom - d;
129                })
130                .attr("width", rectWidth)
131                .attr("height", function(d) {
132                   return d;
133                });
134
135                enterRect.append("rect")
136                .attr("fill", "steelblue")
137                .attr("x", function(d, i) {
138                   return padding.left + i * rectStep;
139                })
140                .attr("y", function(d) {
141                   return height - padding.bottom - d;
142                })
143                .attr("width", rectWidth)
144                .attr("height", function(d) {
145                   return d;
146                });
147
148                exitRect.remove();
149
150                updateText.attr("text-anchor", "middle")
151                .attr("fill", "white")
152                .attr("x", function(d, i) {
153                   console.log("de-->" + d + "\t-->" + i + "\te-->" + (padding.left + i * rectStep));
154                   return padding.left + i * rectStep;
155                })
156                .attr("y", function(d) {
157                   return height - padding.bottom - d;
158                })
159                .attr("width", rectWidth)
160                .attr("height", function(d) {
161                   return d;
162                })
163                .attr("dx", rectWidth/2)
164                .attr("dy", "1em")
165                .text(function(d) {
166                   return d;
167                });
168
169                enterText.append("text")
170                .attr("text-anchor", "middle")
171                .attr("fill", "white")
172                .attr("x", function(d, i) {
173
174                   console.log("d-->" + d + "\t-->" + i + "\te-->" + (padding.left + i * rectStep));
175                   return padding.left + i * rectStep;
176                })
177                .attr("y", function(d) {
178                   return height - padding.bottom - d;
179                })
180                .attr("width", rectWidth)
181                .attr("height", function(d) {
182                   return d;
183                })
184                .attr("dx", rectWidth/2)
185                .attr("dy", "1em")
186                .text(function(d) {
187                   return d;
188                });
189
190                exitText.remove();
191             }
192
193             function myadd() {
194                dataset.push(Math.floor(Math.random() * 100));
195                console.log(dataset);
196                redraw(dataset);
197             }
198
199             function mysort() {
200                dataset.sort(d3.ascending);
201                redraw(dataset);
202             }
203         </script>
204     </body>
205 </html>
时间: 2024-08-01 17:55:13

d3.js <一>的相关文章

d3.js学习

画svg图像 1.添加svg元素 2.添加g元素,g元素是一个分组的元素,相当于html中的div元素 3.画图像 4.画坐标轴 ----------------------------------------------------------------------------- d3画闲线性曲线例子 html: <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&

【 D3.js 选择集与数据详解 — 4 】 enter和exit的处理方法以及处理模板

绑定数据之后,选择集分为三部分:update.enter.exit.这三部分的处理办法是什么呢?本文将讲解其处理方法,以及一个常用的处理模板. 1. enter的处理方法 如果没有足够的元素,那么处理方法通常是使用append()添加元素.请看下面的代码: <body> <p></p> <script> var dataset = [3, 6, 9]; var p = d3.select("body").selectAll("p

Learning D3.js d3的path讲解

转帖: http://jsbin.com/omajal/23/edit?html,output svg的path标签被称为”可以组成任何形状的形状” SVG Path可以绘制任何形状的图形,包括矩形,圆形,椭圆,折线,多边形,直线,曲线等.W3 标准对SVG 的Path定义如下SVG路径代表一个形状的轮廓,可以描边,填充,用作剪切路径,或任何三者的结合.W3提供了一个形象的比喻,用钢笔和纸来表示svg的path* 想象一个钢笔放在一张纸上.* 钢笔在某点与纸接触.* 笔尖移动到另一处.* 这两个

【 D3.js 入门系列 — 11 】 入门总结

D3 新专题首页 一转眼,这个入门系列已经积累了二十二篇文章之多,我想作为 D3.js 这款数据可视化工具的入门来说已经足够了.相信仅仅要看完本系列.以后全然能够在辅以查询的情况下完毕大部分可视化工作. D3.js 最早的 v1.0 版本号是由 Michael Bostock 于2011年2月18日公布,其后经过多人的不断完好,眼下最新的版本号为 v3.4.11.从公布至今三年多的时间里,D3.js 在国外不断有人尝试并制作教程.成为了流行的数据可视化工具.可是眼下在国内能查询到中文资料还比較少

【 D3.js 进阶系列 — 6.0 】 拖拽的应用(Drag)

拖拽(Drag)是交互式中很重要的一种,本文将讲解拖拽的使用方法. 1. drag的定义 D3中可用 d3.behavior.drag() 来定义 drag 行为. var drag = d3.behavior.drag() .on("drag", dragmove); function dragmove(d) { d3.select(this) .attr("cx", d.cx = d3.event.x ) .attr("cy", d.cy =

【 D3.js 入门系列 --- 9.6 】 打包图的制作

本人的个人博客为:www.ourd3js.com csdn博客为:blog.csdn.net/lzhlzz 转载请注明出处,谢谢. 打包图( Pack ),用于包含与被包含的关系,也表示各个对象的权重,通常用一圆套一圆来表示前者,用圆的大小来表示后者. 先看本节所使用的数据:  city2.json 这是各城市所属关系的数据.我们现在要用 D3 的 layout 来转换数据,使其容易进行可视化处理. var pack = d3.layout.pack() .size([ width, heigh

[2] D3.js中如何使用数据和选择元素

对D3.js或数据可视化有兴趣的朋友欢迎到 www.ourd3js.com 讨论. 接着上一讲的内容,这次讨论如何选择元素和使用数据. 现在页面中有三行文字,代码为: <p>Hello World 1</p> <p>Hello World 2</p> <p>Hello World 3</p> 定义一个集合set,里面有三个元素: var set = ["I like dog","I like cat&qu

【D3.js数据可视化实战】--(3)桑基图(sankey)的绘制

什么是桑基图 用D3绘制简单的Sankey图 添加文字 圆形节点 添加交互效果 注:本文未经作者允许严禁转载和演绎 1 什么是桑基图? 桑基图是流图 (flow diagram )的一种,用来描述能量,人口,经济等的流动情况.最早由爱尔兰人Matthew Henry Phineas Riall Sankey 提出.Sankey是一名船长也是工程师,1898年Sankey在土木工程师学会会报纪要的一篇关于蒸汽机能源效率的文章中首次推出了第一个能量流动图,后来被命名为Sankey图,中文音译为桑基图

d3.js学习1

官网: http://d3js.org/ 范例: https://github.com/mbostock/d3/wiki/Gallery 引用: //在线引用 <script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script> //或下载到本地 <head> <meta charset="utf-8"> <title>

【 D3.js 进阶系列 — 6.1 】 缩放的应用(Zoom)

缩放(Zoom)是另一种重要的可视化操作,主要是使用鼠标的滚轮进行. 1. zoom 的定义 缩放是由 d3.behavior.zoom() 定义的. var zoom = d3.behavior.zoom() .scaleExtent([1, 10]) .on("zoom", zoomed); function zoomed() { circles_group.attr("transform", "translate(" + d3.event.