学习:D3
http://www.ourd3js.com/wordpress/?p=196
http://www.ourd3js.com/demo/rm/R-9.2/force.html 力导向图(那个可以拖拽的多个小球) 2016-2-19
http://www.ourd3js.com/wordpress/396/ D3.js 入门系列 2018-1-31
http://www.ourd3js.com/wordpress/
http://huiyi.csdn.net/activity/product/goods_list?project_id=2660
http://www.ourd3js.com/wordpress/?p=147 水流模拟
<script src="https://cdn.bootcss.com/d3/4.11.0/d3.min.js"></script>
<script src="https://cdn.bootcss.com/d3/3.5.17/d3.min.js"></script>
一个例子:
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8">
<meta http-equiv="Pragma" content="no-cache">
<script type="text/javascript" src="http://cdn.bootcss.com/jquery/1.11.2/jquery.min.js"></script>
<script type="text/javascript" src="https://cdn.bootcss.com/d3/3.5.17/d3.min.js"></script>
<script type="text/javascript">
$(function(){
var svg = d3.select("#paint_svg");
var width = svg.attr("width");
var height = svg.attr("height");
var title = svg.append("text")
.attr("class","titleText")
.attr("x", 30)
.attr("y", 30)
.text("拖着玩...") //1.确定初始数据
var nodes = [ { name:"专题站"},
{ name:"D3入门"},
{ name:"D3进阶"},
{ name:"D3高级"},
{ name:"D3视频"},
{ name:"JSON"},
{ name:"D3地图"},
{ name:"可视化"},
{ name:"随笔"}
];
/*
var edges = [ { source:0, target:1} ,
{ source:1, target:2} ,
{ source:2, target:3} ,
{ source:0, target:4} ,
{ source:0, target:5} ,
{ source:1, target:6} ,
{ source:0, target:7} ,
{ source:0, target:8} ];
*/
var edges = [ { source:0, target:1} ,
{ source:0, target:2} ,
{ source:0, target:3} ,
{ source:0, target:4} ,
{ source:0, target:5} ,
{ source:0, target:6} ,
{ source:0, target:7} ,
{ source:0, target:8} ];
//2.转换数据
var force = d3.layout.force()
.nodes(nodes) //设定顶点数组
.links(edges) //设定边数组
.size([width,height]) //设定作用范围
.linkDistance(150) //设定边的距离
.charge(-400); //设定顶点的电荷数 force.start(); //开启布局计算
console.log(nodes); //输出转换后的数据
console.log(edges); //3.绘制
var color = d3.scale.category20(); //绘制连线
var lines = svg.selectAll(".forceLine")
.data(edges)
.enter()
.append("line")
.attr("class","forceLine"); //绘制节点
var circles = svg.selectAll(".forceCircle")
.data(nodes)
.enter()
.append("circle")
.attr("class","forceCircle")
.attr("r",35)
.style("fill",function(d,i){
return color(i);
})
.call(force.drag); //绘制文字
var texts = svg.selectAll(".forceText")
.data(nodes)
.enter()
.append("text")
.attr("class","forceText")
.attr("x",function(d){ return d.x; })
.attr("y",function(d){ return d.y; })
.attr("dy", ".3em")
.text(function(d){ return d.name; }); //tick事件的监听器
force.on("tick", function(){ //更新连线的端点坐标
lines.attr("x1",function(d){ return d.source.x; });
lines.attr("y1",function(d){ return d.source.y; });
lines.attr("x2",function(d){ return d.target.x; });
lines.attr("y2",function(d){ return d.target.y; }); //更新节点坐标
circles.attr("cx",function(d){ return d.x; });
circles.attr("cy",function(d){ return d.y; }); //更新节点文字的坐标
texts.attr("x",function(d){ return d.x; });
texts.attr("y",function(d){ return d.y; }); }); //力学图运动开始时
force.on("start", function(){
console.log("运动开始");
}); //力学图运动结束时
force.on("end", function(){
console.log("运动结束");
}); });
</script>
<style type="text/css">
.forceLine {stroke: #444;stroke-width: 2;}
.forceText {fill: black;text-anchor: middle;font-size: 20;font-family: simhei;}
</style>
</head>
<body>
<h2>http://www.ourd3js.com</h2>
<div class="painting">
<svg id="paint_svg" width="1190" height="800"></svg>
</div>
</body>
</html>
...
学习:D3的更多相关文章
- D3.js学习(一)
从今天开始我将和大家一起学习D3.js(Data-Driven Documents),由于国内关于D3的学习资料少之又少,所以我觉得很有必要把自己学习过程记录下来,供同学们参考,如果文章有有哪些表达有 ...
- 【D3】D3学习轨迹-----学习到一定层度了再更新
1. 首先了解SVG的基本元素 http://www.w3school.com.cn/svg/ 2. 了解d3的专有名词 http://www.cnblogs.com/huxiaoyun90/p ...
- d3.js入门学习
个人感觉前端数据可视化是个趋势,并且现在所在公司也是有做这块的项目,虽然我目前还没有接触到公司数据可视化的项目,但是,今后总是要接触的嘛. 今天看了一下公司目前所用的两种数据可视化工具---D3和EC ...
- d3.js学习笔记(五)——将数据结构化为D3.js可处理的
目标 在这一章,你将会理解如何对数据进行结构化,来更好的使用D3.js. 我们将会回顾我们之前已经学习的,学习D3.js如何使用选集(selections),JavaScript对象基础,以及如何最优 ...
- D3.js学习笔记(一)——DOM上的数据绑定
开始学习D3.js,网上没有找到很满意的中文教程,但是发现了一个很好的英文教程,讲解的非常详细.从一个初始简单的HTML网页开始,逐步加入D3.js的应用,几乎是逐句讲解.学习的时候,就顺便翻译成中文 ...
- D3学习之:D3.js中的12中地图投影方式
特别感谢:1.[张天旭]的D3API汉化说明.已被引用到官方站点: 2.[馒头华华]提供的ourd3js.com上提供的学习系列教程,让我们这些新人起码有了一个方向. 不得不说,学习国外的新技术真的是 ...
- 使用D3绘制图表(7)--饼状图
这次是绘制饼状图,也是这一次使用D3绘制图表的最后一篇,大家可以从其他地方深入学习D3绘制图表,也可以直接查看D3的API进行学习,本次绘制饼状图的数据跟之前的卸载数组里面的不一样,这一次是使用d3的 ...
- D3.js 简介和安装
一.What´s D3.js D3.js是一种数据操作类型的javascript库(也可视其为插件):结合HTML,SVG和CSS,D3可以图形化的,生动的展现数据. D3 的全称是(Data-Dri ...
- 【 D3.js 入门系列 --- 0 】 简介和安装
D3的全称是(Data-Driven Documents),顾名思义可以知道是一个关于数据驱动的文档的javascript类库.如果你不知道什么是javascript,请先学习javascript的相 ...
- d3.js入门1:安装配置
D3 是当前流行的数据可视化工具,通过本文能有对 D3 有一个初步认识. 1. D3 是什么 D3 的全称是(Data-Driven Documents),顾名思义可以知道是一个被数据驱动的文档.听名 ...
随机推荐
- Caffe 根据log信息画出loss,accuracy曲线
在执行训练的过程中,若指定了生成log信息,log信息包含初始化,网络结构初始化和训练过程随着迭代数的loss信息. 注意生成的log文件可能没有.log后缀,那么自己加上.log后缀.如我的log信 ...
- vue学习笔记 - 篇2
1.借助Vue.extend()方法创建组件 注意点 var Aaa = Vue.extend({ template: "<h1>这是标题</h1>" }) ...
- 一分钟学会ConstraintLayout(转载)
原文地址:https://www.v2ex.com/t/287863 最近更新了Android Studio,突然发现xml中的布局已经变成了ConstraintLayout,于是搜了一篇文章看一下 ...
- WCF分布式服务1-核心概念
参考msdn library for WCF Windows Communication Foundation (WCF) 是用于构建面向服务的应用程序的框架. 借助 WCF,可以将数据作为异步消息从 ...
- useradd语法2
在Linux中 useradd 命令用来创建或更新用户信息. useradd 命令属于比较难用的命令 (low level utility for adding users),所以 Debian 系的 ...
- rod cutting
for a rod of length i the price of it si pi,to cut the rod to earn more money package dynamic_progra ...
- 剑指Offer 51. 构建乘积数组 (数组)
题目描述 给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1].不 ...
- FOR XML PATH 简单介绍
FOR XML PATH 有的人可能知道有的人可能不知道,其实它就是将查询结果集以XML形式展现,有了它我们可以简化我们的查询语句实现一些以前可能需要借助函数活存储过程来完成的工作.那么以一个实例为主 ...
- C++后台服务崩溃堆栈日志
C++后台服务崩溃堆栈日志 C/C++后台服务运行过程中总会出现一些不容易重现的崩溃故障,由于重现频率低,同时运行在服务器上,导致无法调试,此外服务直接崩溃,常规日志无法截获到有用信息,这时如果能够保 ...
- CoAP、MQTT、RESTful协议区别
/********************************************************************** * CoAP.MQTT.RESTful协议区别 * 说明 ...