如何利用D3.js绘制一个简单的散点图
2017-12-05 22:53
543 查看
首先保证你的包中引入了d3.js文件,我这里用的是d3.v3.js这个版本
接下来可以开始写你的程序了
要在网页上绘制散点图,我们需要用到SVG(不清楚SVG概念的请点击 这里 学习)
以上,我们的画布就定义完成了(关于 append( ) 的用法 和 attr( ) 的用法 自行学习)
那么,要在画布上画出散点图,我们需要用圆来表示这些散点
所以,接下来
画布和圆都定义完成了,那么,接下来就可以开始我们的绘制了
这里说明一下定义x和y坐标时使用的匿名函数 function ( d , i ) { }
d表示遍历的数据来源 dataset 中的每一项,i 表示第 i 项的序号
完整代码如下:
接下来可以开始写你的程序了
要在网页上绘制散点图,我们需要用到SVG(不清楚SVG概念的请点击 这里 学习)
1.定义画布
//这里我们随意定义一些散点坐标 var dataset = [[5,10],[10,8],[15,18],[20,11],[25,15],[30,20]]; //设定画布宽度 var width = 1500; //画布高度 var height = 700; //设置画布 var svg = d3.select("body") .append("svg") .attr("width",width) .attr("height",height);
以上,我们的画布就定义完成了(关于 append( ) 的用法 和 attr( ) 的用法 自行学习)
那么,要在画布上画出散点图,我们需要用圆来表示这些散点
所以,接下来
2.定义点集
//申明圆集 var circles = svg.selectAll("circle") .data(dataset) .enter() .append("circle");
画布和圆都定义完成了,那么,接下来就可以开始我们的绘制了
3.圆点的绘制
//为申明的圆集设置参数 //定义圆心x坐标 circles.attr("cx",function (d,i) { return d[0]*magnification; }) //定义圆心y坐标 .attr("cy",function (d,i) { return height - d[1]*magnification; }) //设置圆的半径 .attr("r",function (d) { return 25; }) //设置圆的颜色 .attr("fill", "Salmon")
这里说明一下定义x和y坐标时使用的匿名函数 function ( d , i ) { }
d表示遍历的数据来源 dataset 中的每一项,i 表示第 i 项的序号
完整代码如下:
//散点坐标
var dataset = [[5,10],[10,8],[15,18],[20,11],[25,15],[30,20]];
//设定画布宽度
var width = 1500;
//画布高度
var height = 700;
//设置画布
var svg = d3.select("body")
.append("svg")
.attr("width",width)
.attr("height",height);
//申明圆集 var circles = svg.selectAll("circle") .data(dataset) .enter() .append("circle");
//为申明的圆集设置参数 //定义圆心x坐标 circles.attr("cx",function (d,i) { return d[0]*magnification; }) //定义圆心y坐标 .attr("cy",function (d,i) { return height - d[1]*magnification; }) //设置圆的半径 .attr("r",function (d) { return 25; }) //设置圆的颜色 .attr("fill", "Salmon")
相关文章推荐
- 【自动驾驶】如何利用深度学习搭建一个最简单的无人驾驶系统
- 如何利用canvas绘制一个三分园
- 一个简单的例子看明白如何利用window.location.hash实现ajax操作时浏览器的前进/后退功能
- 一个简单的PV统计例子,演示如何利用内存缓冲高并发环境下的计数
- 用UDP实现可靠文件传输,如何利用UDX创建一个简单的WIN32程序
- 利用canvas绘制一个简单时钟
- 利用node.js+mongodb如何搭建一个简单登录注册的功能详解
- 如何利用Construct 2制作一个简单的游戏
- Unity中如何利用一个协程和www类实现简单的图片下载
- 如何利用多线程写一个简单的定时器?
- 【远程调用框架】如何实现一个简单的RPC框架(三)优化一:利用动态代理改变用户服务调用方式
- 如何利用JUnit开展一个简单的单元测试(测试控制台输出是否正确)
- 一个简单的例子看明白如何利用window.location.hash实现ajax操作时浏览器的前进/后退功能
- 如何利用CEF3创建一个简单的应用程序 (Windows Platform)
- 用UDP实现可靠文件传输,如何利用UDX创建一个简单的WIN32程序
- 如何利用动态代理技术构建一个通用的,获取代理类的简单框架?
- 利用D3.js 做一个简单的图表
- (转)如何用PHP/MySQL为 iOS App 写一个简单的web服务器(译) PART1
- 如何使用Core Text创建一个简单的杂志图书App
- 如何利用代码从网站上获取一个文件的大小,并且下载时不出现保存提示框