<!-- book :interactive data visualization for the web
11.2 stack 一个堆叠图的例子 --> <!DOCTYPE html>
<meta charset="utf-8">
<style>
</style>
<body>
<script src="../d3.min.js"></script>
<script>
var dataset = [
[
{ x: 0, y: 5 },
{ x: 1, y: 4 },
{ x: 2, y: 2 },
{ x: 3, y: 7 },
{ x: 4, y: 23 }
],
[
{ x: 0, y: 10 },
{ x: 1, y: 12 },
{ x: 2, y: 19 },
{ x: 3, y: 23 },
{ x: 4, y: 17 }
],
[
{ x: 0, y: 22 },
{ x: 1, y: 28 },
{ x: 2, y: 32 },
{ x: 3, y: 35 },
{ x: 4, y: 43 }
]
];
var stack=d3.layout.stack();
stack(dataset); //只有经过这一步,dataset才可以转变堆叠图的数据
var color=d3.scale.category10();
var w=500,h=100;
var xScale=d3.scale.ordinal()
.domain(d3.range(dataset[0].length)) //序数要取[0]
.rangeRoundBands([0,w],0.05)
;
var yScale=d3.scale.linear()
.domain([0,
d3.max(dataset,function(d){
return d3.max(d,function(d){
console.log(d.y0);
console.log(d.y);
return d.y0+d.y;
});
})
])
.range([0,h]) //什么时候为h,0
;
var svg=d3.select('body')
.append('svg')
.attr({
'width':w,
'height':h
})
;
var groups=svg.selectAll('g')
.data(dataset)
.enter()
.append('g')
.style('fill',function(d,i){
return color(i);
})
;
var rects=groups.selectAll('rect')
.data(function(d){return d;})
.enter()
.append('rect')
.attr({
'x':function(d,i){
return xScale(i);
},
'y':function(d){
return yScale(d.y0);
}, // 以x轴底部为基础
// 'y':function(d){
// return h-yScale(d.y+d.y0);
// }, 'width':xScale.rangeBand(),
'height':function(d,i){
return yScale(d.y);
},
})
;
</script> <!-- 以左y轴为基础 -->
<!DOCTYPE html>
<meta charset="utf-8">
<style>
</style>
<body>
<script src="../d3.min.js"></script>
<script>
var dataset = [
[
{ x: 0, y: 5 },
{ x: 1, y: 4 },
{ x: 2, y: 2 },
{ x: 3, y: 7 },
{ x: 4, y: 23 }
],
[
{ x: 0, y: 10 },
{ x: 1, y: 12 },
{ x: 2, y: 19 },
{ x: 3, y: 23 },
{ x: 4, y: 17 }
],
[
{ x: 0, y: 22 },
{ x: 1, y: 28 },
{ x: 2, y: 32 },
{ x: 3, y: 35 },
{ x: 4, y: 43 }
]
];
var stack=d3.layout.stack();
stack(dataset); //只有经过这一步,dataset才可以转变堆叠图的数据
var color=d3.scale.category10();
var w=100,h=500;
var yScale=d3.scale.ordinal()
.domain(d3.range(dataset[0].length)) //序数要取[0]
.rangeRoundBands([0,h],0.05)
;
var xScale=d3.scale.linear()
.domain([0,
d3.max(dataset,function(d){
return d3.max(d,function(d){
console.log(d.y0);
console.log(d.y);
return (d.y0+d.y);
});
})
])
.range([0,w]) //什么时候为h,0
;
var svg=d3.select('body')
.append('svg')
.attr({
'width':w,
'height':h
})
;
var groups=svg.selectAll('g')
.data(dataset)
.enter()
.append('g')
.style('fill',function(d,i){
return color(i);
})
;
var rects=groups.selectAll('rect')
.data(function(d){return d;})
.enter()
.append('rect')
.attr({
'y':function(d,i){
return yScale(i);
},
'x':function(d){
return xScale(d.y0);
},
'height':yScale.rangeBand(),
'width':function(d,i){
return xScale(d.y);
},
})
;
</script>

最新文章

  1. GitHub + VSTS 开源代码双向同步
  2. css3+visbibilty解决淡入淡出问题
  3. PHP错误级别 error_reporting() 函数详解
  4. AtomineerUtils爆破过程记录
  5. css-让div永远在最底部
  6. C++强制类型转换操作符 const_cast
  7. 信息安全系统设计基础exp_5
  8. linux 安装webbench
  9. Java 特殊性领会
  10. NOI2011道路修建
  11. Linux common resources
  12. Java异常分类 转载
  13. [物理学与PDEs]第1章第6节 电磁场的标势与矢势 6.3 例 --- 电偶极辐射
  14. Windows下 OpenSSL DES加密配置
  15. java Swing组件和事件处理(二)
  16. Vue表单修饰符(lazy,number,trim)
  17. spring cloud 组件图
  18. 【Android开发】Api_Android_Distribute
  19. Type cvc-complex-type.2.4.a: Invalid content was found starting with element &#39;build&#39;.错误的解决方法
  20. Hadoop 回收站

热门文章

  1. linux系统web站点设置-http基础设置
  2. [转载]linux中sed的用法
  3. 百度云的ubuntu16.04.1部署Apache服务器+Django项目
  4. 20172325 2018-2019-1 《Java程序设计》第二周学习总结
  5. tar 解压某个指定的文件或者文件夹
  6. 论坛:排序 &gt;&gt;case..when..then ..end的妙用
  7. 【UI测试】--多窗口&系统资源
  8. Mockito学习(zz)
  9. JS高级-String-正则表达式:
  10. windows无法卸载jdk的解决方法