line tension
<!DOCTYPE html>
<html>
<head>
<title>tension</title> <script type="text/javascript" src="../d3.min.js"></script>
<script type="text/javascript" src="flare.json"></script>
<style type="text/css"> /*tension*/
body {
font: 10px sans-serif;
} .rule line {
stroke: #eee;
shape-rendering: crispEdges;
} .rule line.axis {
stroke: #;
} path {
fill: none;
stroke-width: .5px;
} circle {
fill: #fff;
stroke: #;
}
</style>
</head>
<body> <script type="text/javascript">
//tension example:相同的数据使用不同的tension可以画出多条线段。
//这里没有用坐标轴,是用line来画的。
var data=d3.range().map(function(i){
return {x:i/ ,y:(Math.sin(i*)+)/};
})
; var w=
,h=
,p=
,x=d3.scale.linear().domain([,]).range([p,w-p])
,y=d3.scale.linear().domain([,]).range([h-p,p])
; var line=d3.svg.line()
.interpolate('cardinal') //不要写错了。
.x(function(d){
return x(d.x);//Object {x: 0, y: 0.5}
})
.y(function(d){
return y(d.y);
})
; var vis=d3.select('body')
.append('svg:svg')
.attr({
'width':w
,'height':h
})
.append('svg:g')
; var rules=vis.selectAll('g.rule')
.data(x.ticks())
.enter()
.append('svg:g')
.attr({
'class':'rule'
})
; rules.append('svg:line')
.attr({
'x1':x
,'x2':x
,'y1':p
,'y2':h-p-
})
; rules.append('svg:line')
.attr({
'class':function(d){
return d? null:'axis';
}
,'x1':p
,'x2':w-p-
,'y1':y
,'y2':y
})
; rules.append('svg:text')
.attr({
'x':x
,'y':h-p+
,'dy':'.71em' //移动的纵坐标
,'text-anchor':'middle'
})
.text(x.tickFormat())
; rules.append('svg:text')
.attr({
'x':p-
,'y':y
,'dy':'.35em' //移动的纵坐标
,'text-anchor':'end'
})
.text(x.tickFormat())
; vis.selectAll('path')
.data([, 0.2, 0.4, 0.6, 0.8, ])
.enter()
.append('svg:path')
.attr({
'd':function(d){
return line.tension(d)(data);
}
})
.style({
'stroke':d3.interpolateRgb('brown','steelblue')
})
; vis.selectAll('circle')
.data(data)
.enter()
.append('svg:circle')
.attr({
'cx':function(d){
return x(d.x);
}
,'cy':function(d){
return y(d.y);
}
,'r':4.5
})
;
</script>
</body>
</html>
注:d为1时,则为直线,因为使用了基数样条插值,d为0时,并不是非常圆滑的。
line tension的更多相关文章
- D3、EChart、HighChart绘图demol
1.echarts: <!DOCTYPE html> <html> <head> <meta charset="utf-8" ...
- 软件项目技术点(1)——d3.interpolateZoom-在两个点之间平滑地缩放平移
AxeSlide软件项目梳理 canvas绘图系列知识点整理 软件参考d3的知识点 我们在软件中主要用到d3.js的核心函数d3.interpolateZoom - 在两个点之间平滑地缩放平移.请 ...
- Charts & canvas & RGBA
Charts & canvas RGBA color let stopFlag = 0; // show Charts const showCharts = (name = "&qu ...
- D3js-API介绍【英】
Everything in D3 is scoped under the d3 namespace. D3 uses semantic versioning. You can find the cur ...
- D3.js 线段生成器 (V3版本)
线段生成器 与线段生成器相关的方法: d3.svg.line() //创建一个线段生成器. line(data) //使用线段生成器绘制data数据. line.x([x]) //设置或获取线 ...
- D3js-API介绍【中】
JavaScript可视化图表库D3.js API中文參考,d3.jsapi D3 库所提供的全部 API 都在 d3 命名空间下.d3 库使用语义版本号命名法(semantic versioning ...
- 【D3 API 中文手冊】
[D3 API 中文手冊] 声明:本文仅供学习所用,未经作者同意严禁转载和演绎 <D3 API 中文手冊>是D3官方API文档的中文翻译. 始于2014-3-23日,基于VisualCre ...
- Hexo博客中插入 Chart 动态图表
该文基本(全部)来自于chatjs中文文档 由于使用pjax,导致页面需要二次刷新才会显示表格,故引入了自动刷新的JS,但这样会导致回退标签失效 背景 今天在谷歌上逛博客时,突然发现shen-yu大佬 ...
- Chart.js & CPU 性能监控
Chart.js 可视化动态 CPU 性能监控 https://github.com/gildata/RAIO/issues/337 https://github.com/chartjs/Chart. ...
随机推荐
- scala-学习 2
列表操作 List() 或者是 Nil 空list scala> val a = List() a:List[Nothing] = List() print(a.length) a.length ...
- servlet类
一.Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向 ...
- Hadoop slaves 没有nodeManager
1../start-yarn.sh 后从服务器没有nodemanager 进程,并且这里没有报错 在从服务器上的日志上见: 从服务器查看日志: 查看2.8.4官方文档: https://hadoop. ...
- KEGG下载某物种最新的版本信息(斑马鱼为例)
步骤一:打开链接并选择物种 http://www.genome.jp/kegg-bin/get_htext?hsa00001+3101 步骤二:对文件进行解析 步骤三:统计信息 一级结构(6大类): ...
- ElementTree 解析xml(minidom解析xml大文件时,MemoryError)
在使用minido解析xml文件时,因为文件过大,结果报错MemoryError.查询后得知是因为minidom在解析时是将所有文件放到内存里的,很占用内存,所以要考虑换一种方法来处理xml文件. ...
- 使用jQuery可能出现的错误
- Linux跑火车,提升趣味性
實現跑火車[可陶冶情操,愉悦心情]##下载yum源[root@localhost ~]# wget http://mirror.centos.org/centos/7/extras/x86_64/P ...
- 利用redis完成自动补全搜索功能(二)
前面介绍了自动完成的大致思路,现在把搜索次数的功能也结合上去.我采用的是hash表来做的,当然也可以在生成分词的时候,另外一个有序集合来维护排序, 然后2个有序集合取交集即可.这里介绍hash的方式来 ...
- SNP/单核苷酸多态性分析
SNP/单核苷酸多态性分析 SNP(Single Nucleotide Polymorphism),即单核苷酸多态性,是由于单个核苷酸改变而导致的核酸序列多态.一般来说,一个SNP位点只有两种等位基因 ...
- vue.js vue-cli 中解决 axios 跨域调用的问题
修改 /config/index.js 文件如下: proxyTable: { '/api': { target: 'http://chifan.local', changeOrigin: true, ...