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. ...
随机推荐
- 图解Java常用数据结构(一)【转载】
最近在整理数据结构方面的知识, 系统化看了下Java中常用数据结构, 突发奇想用动画来绘制数据流转过程. 主要基于jdk8, 可能会有些特性与jdk7之前不相同, 例如LinkedList Linke ...
- Hook钩子编程
钩子(Hook),是Windows消息处理机制的一个平台,钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统,以监视指定窗口的某种消息.每当特定的消息发出,在没有到达目的窗口前,钩子程序就先 ...
- Js语言的奇怪特性
var a = .3 - 2; console.log(a); a = 0.099999998 而不是0.1,是不是很奇怪?
- OJ_单词倒排
题目描述:对字符串中的所有单词进行倒排. 说明: 1.每个单词是以26个大写或小写英文字母构成,可以用一个“-”中连接线连接单词两部分表示一个单词,但是仅限一个“-”,出现两个“--”则为非构成单词的 ...
- 如何进入/home/user/.wine
命令行输入 :cd /home/user/.wine/drive_c/windows/fonts /home是linux的用户目录,/user是用户名/.wine是隐藏目录,凡是以.开头的都是隐藏目录 ...
- yii的layouts的使用
yii的layouts的使用 我们在控制器中使用render()时,yii会默认的载入布局. 1.在protected/componets下的Controller.php中修改$layout变量, 来 ...
- 接触mybatis使用
1.mybatis mybatis是一个自定义sql.存储过程和高级映射的持久层框架,是Apache下的顶级项目. mybatis可以让程序员将主要精力放在sql上,通过mybatis提供的映射方式. ...
- winform弹出文件和目录选择框
目录选择: FolderBrowserDialog dialog = new FolderBrowserDialog(); dialog.Description = "请选择文件路径&quo ...
- 清除Pycharm设置的方法
Mac 按需运行下面的 rm 删除命令 # Configuration rm -rf ~/Library/Preferences/PyCharm* # Caches rm -rf ~/Library/ ...
- Zookeeper 系列(二)安装配制
Zookeeper 系列(二)安装配制 一.Zookeeper 的搭建方式 Zookeeper 安装方式有三种,单机模式和集群模式以及伪集群模式. 单机模式 :Zookeeper 只运行在一台服务器上 ...