【d3.js教程02】d3入门
来源:互联网 发布:嵌入式软件测试工具 编辑:程序博客网 时间:2024/05/22 08:20
<!DOCTYPE html><html><head><meta charset="utf-8"><title></title><style type="text/css">.axis path,.axis line{stroke: black;fill: none;shape-rendering: crispedges;}</style><script src="js/d3.min.js" type="text/javascript" charset="utf-8"></script><script src="js/jquery-1.11.3.min.js" type="text/javascript" charset="utf-8"></script></head><body> <script type="text/javascript"> /*svg大小*/ var width = 400; var height = 400; /*svg周边留白*/ var padding = {left:30,right:30,top:20,bottom:20}; /*在body里面添加一个SVG画布*/ var svg = d3.select("body") .append("svg") .attr("width",width) .attr("height",height); /*定义一个数据集*/ var dataset = [10,20,30,40,50,60,33,25,12,5]; /*x轴的比例尺*/ var xScale = d3.scale.ordinal() //ordinal是序数的意思 可以理解为序数比例尺 (一组序数来分给定的范围) .domain(d3.range(dataset.length)) //数据源(range会将数字生成数组) .rangeRoundBands([0,width-padding.left-padding.right]); //输出结果集 /*y轴的比例尺*/ var yScale = d3.scale.linear() //linear理解为线性比例尺 (一个线性的范围来分给定的范围) .domain([0,d3.max(dataset)]) //数据源 .range([height-padding.top-padding.bottom,0]); //对应输出的结果集(故意要写反,因为后面这个值是用来减去的) /*矩形块之间的空白*/ var rectPadding = 4; /*定义坐标轴*/ var xAxis = d3.svg.axis() .scale(xScale) .orient("bottom"); var yAxis = d3.svg.axis().scale(yScale).orient("left"); /*添加矩形元素*/ var rects = svg.selectAll(".MyRect") .data(dataset) .enter() .append("rect") .attr("class","MyRect") .attr("transform","translate("+padding.left+","+padding.top+")") .attr("x",function(d,i){ return xScale(i)+rectPadding/2; }) .attr("y",function(d){ return yScale(d); }) .attr("width",xScale.rangeBand()-rectPadding) .attr("height",function(d){ return height-padding.top-padding.bottom-yScale(d); }) .attr("fill","steelblue"); /*添加文字元素*/ var texts = svg.selectAll(".MyText") .data(dataset) .enter() .append("text") .attr("class","MyText") .attr("transform","translate("+padding.left+","+padding.top+")") //设定总体位移 .attr("x",function(d,i){ return xScale(i)-rectPadding; //设定各自水平位移 }) .attr("y",function(d){ return yScale(d); //设定各自竖直位移 }) .attr("dx",function(){ return (xScale.rangeBand() - rectPadding)/2; //各文字水平位移(这个位移是相对rect位移的) }) .attr("dy",function(d){ return 20; //各文字竖直位移 }) .text(function(d){ return d; //文本显示 }) .attr("fill","white"); //设置为白色 /*添加坐标轴的元素*/ svg.append("g") .attr("class","axis") .attr("transform","translate("+padding.left+","+380+")") //规定坐标轴的位移 .call(xAxis); svg.append("g") .attr("class","axis") .attr("transform","translate("+padding.left+","+padding.top+")") .call(yAxis); </script></body></html>
0 0
- 【d3.js教程02】d3入门
- 【d3.js教程01】d3入门
- 【D3.js】D3.js入门感悟、学习指南
- D3.js--入门
- D3.js入门
- d3.js入门
- d3.js入门学习
- 【D3】D3.js使用教程(2)-绘图
- d3.js+canvsd实践教程
- 【d3.js教程07】弦图
- 【d3.js教程12】地图
- D3.js version4教程(1)
- D3.js version4教程(2)
- D3.js version4教程(3)
- D3.js version4教程(4)
- D3.js version4教程(5)
- D3.js version4教程(6)
- d3入门
- excel数据生成txt逗号分隔文本及末尾添加新列
- 阅读《Android 从入门到精通》(8)——编辑框
- AOP+自定义注解+memcached
- Objective-C Runtime<1>
- android Canvas画布
- 【d3.js教程02】d3入门
- 【LVL1_7_c】【上机题】【1】使用动态数组,存放10个int类型数据,赋值,再遍历
- nginx rewrite
- [ 笔记 ] git 基础命令在学习
- jQuery源码分析11--插件接口的设计,可拓展性
- HTML5+CSS3的响应式网页设计:自动适应屏幕宽度
- XHProf报告字段含义
- 程序界面假死的一种解决方法 - 线程
- iOS跳转到系统设置的各个界面