弦生成器(Chord Generator)
 
弦生成器(Chord Generator)根据两段弧来绘制弦,共有五个访问器,分别为source()target()radius()startAngle()endAngle(),默认都返回与函数名称相同的变量。如果都使用默认的访问器,则要绘制一段弧,其数据组成应该形如:
 
    {
source:{
startAngle : 0.2,
endAngle : Math.PI * 0.3,
radius : 100
},
target:{
startAngle :Math.PI * 1.0,
endAngle : Math.PI * 1.6,
radius : 100
}
}
其中,source为其实弧,target是终止弧。而startAngleendAngleradius则分别是弧的起始角度、终止角度和半径。也可以更改访问器,使变量具有别的名称,或者使用常量。例如:
 
     var chord = d3.svg.chord()
.source(function(d){return d.startArc})
.target(function(d){return d.endArc})
.radius(200)
.startAngle(function(d){return d.start})
.endAngle(function(d){return d.end})
这段代码中,先生成器的起始弧被设定为startArc,终止弧为endArc,半径为常量200,起始角度为start、终止角度为end。因此,数据格式需要修改为:
 
   {
startArc:{
start : 0.2,
end : Math.PI * 0.3,
radius : 100
},
endArc:{
start :Math.PI * 1.0,
end : Math.PI * 1.6,
radius : 100
}
}
如果应用上面定义的弦生成器,由于半径的访问器被设置为常量,因此数据中不必再有半径。
 
弦生成器的五个访问器所代表参数的意义如图:  弦生成器由两段弧连接而成,右上角的source弧带有三个参数,左下角的target带有三个参数。
 
 
 
接下来绘制一段弦。先定义数据,再定义一个弦生成器,访问器全部使用默认的。然后在svg中添加路径,再以数据作为生成器的参数返回路径字符串。代码:
 
         var width = 600;
var height = 400; var svg = d3.select("#body")
.append("svg")
.attr("width",width)
.attr("height",height) var dataList = {
source:{
startAngle : 0.2,
endAngle : Math.PI * 0.3,
radius : 100
},
target:{
startAngle :Math.PI * 1.0,
endAngle : Math.PI * 1.6,
radius : 100
}
} //创建一个弦生成器
var chord = d3.svg.chord(); //添加路径
svg.append("path")
.attr("d",chord(dataList))
.attr("transform","translate(200,200)")
.attr("fill","yellow")
.attr("stroke","black")
.attr("stroke-width","3px")
 
效果图如下:
 
 
 
弦生成器可用于制作弦图,以后会为大家详细介绍。
 
 
 

D3.js 弦生成器(V3版本)的更多相关文章

  1. D3.js 线段生成器 (V3版本)

    线段生成器 与线段生成器相关的方法: d3.svg.line() //创建一个线段生成器.   line(data) //使用线段生成器绘制data数据.   line.x([x]) //设置或获取线 ...

  2. D3.js 区域生成器 (V3版本)

    区域生成器(Area Generator)   区域生成器(Area Generator)用于生成一块区域,使用方法与线段生成器类似.线段生成器地址:数据访问器有x().x0().x1().y().y ...

  3. D3.js 动画 过渡效果 (V3版本)

    一 . 过渡的启动   启动过渡效果,与以下四个方法相关:   d3.transition([selection],[name]) //创建一个过渡对象.但是由于每个选择集中都有transition( ...

  4. D3.js 弦图的制作

    这是一种用于描述节点之间联系的图表. 1. 弦图是什么 弦图(Chord),主要用于表示两个节点之间的联系. 两点之间的连线,表示谁和谁具有联系: 线的粗细表示权重: 2. 数据 初始数据为: var ...

  5. D3.js(v3)+react 制作 一个带坐标与比例尺的柱形图 (V3版本)

    现在用D3.js + react做一个带坐标轴和比例尺的柱形图.我已经尽力把代码全部注释上了,最后我也会把完整柱形图代码奉上.如果还有疑惑的,可以去翻看一下我之前介绍的方法,以下方法都有介绍到. 还有 ...

  6. D3.js的v5版本入门教程(第十二章)—— D3.js中各种精美的图形

    D3.js的v5版本入门教程(第十二章) D3中提供了各种制作常见图形的函数,在d3的v3版本中叫布局,通过d3.layout.xxx,来新建,但是到了v5,新建一个d3中基本的图形的方式变了(我也并 ...

  7. 交互式数据可视化-D3.js(四)形状生成器

    使用JavaScript和D3.js实现数据可视化 形状生成器 线段生成器 var linePath = d3.line() - 使用默认的设置构造一个 line 生成器. linePath.x() ...

  8. D3.js的v5版本入门教程(第十三章)—— 饼状图

    D3.js的v5版本入门教程(第十三章) 这一章我们来绘制一个简单的饼状图,我们只绘制构成饼状图基本的元素——扇形.文字,从这一章开始,内容可能有点难理解,因为每一章都会引入比较多的难理解知识点,在这 ...

  9. D3.js使用过程中的常见问题(D3版本D3V4)

    目录 一.学习D3我必须要学习好SVG矢量图码? 二.如何理解D3给Dom节点绑定数据时的Update.Enter和Exit模式 三.D3绑定数据时用datum与data有什么不一样? 四.SVG图中 ...

随机推荐

  1. 转 MySQL乐观锁和悲观锁

    悲观锁(Pessimistic Lock) 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁.传统的关系型数据库 ...

  2. shell编程:字符串处理方式

    字符串处理方式 计算字符串长度 获取子串在字符串中的索引位置 计算子串长度 抽取(截取)字串 1.计算字符串长度,有两种方式 $ ${#string} $ expr length "$str ...

  3. HDU 1261 字串数(排列组合)

    字串数 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submiss ...

  4. linux 之文件重命名

    没有专门的重命名 命令 用 mv a b 就可以重命名了 mv :move 移动文件(延伸功能:重命名,linux系统没有专门的重命名命令) 基本格式: 移动文件:mv 文件名 移动目的地文件名 重命 ...

  5. 1、eureka注册中心单机

    Spring Cloud 2.x系列之 eureka注册中心单机 一.简介 Spring Cloud Eureka是Spring Cloud Netflix项目下的服务治理模块.而Spring Clo ...

  6. Shell 变量操作

  7. vuex之module的使用

    一.module的作用 由于使用单一状态树,应用的所有状态会集中到一个比较大的对象.当应用变得非常复杂时,store 对象就有可能变得相当臃肿. 为了解决以上问题,Vuex 允许我们将 store 分 ...

  8. nodejs模块——fs模块 读取文件

    readFile读取文件 fs.readFile(filename,[option],callback) 方法读取文件. 参数说明: filename String 文件名 option Object ...

  9. Vue中的作用域插槽

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  10. vue 重定向

    //重定向 { path: '/*', component: Home}