D3学习之坐标系绘制
坐标轴的绘制我们需要搞清楚以下三个要点:
1)、axis函数
2)、.call()函数用于组合
3)、坐标轴的平移旋转
关于第三点其实就是"transform","translate(X,Y)"的含义和效果结合自己要求进行使用。
<html>
<head>
<meta charset="utf-8">
<title>坐标轴</title> <style>
.axis path,
.axis line{
fill: none;
stroke: skyblue;
shape-rendering: crispEdges;
stroke-width: 3px;
} .axis text {
font-family: sans-serif;
font-size: 11px;
}
.MyPath {
fill: none;
stroke: darkred;
stroke-width: 2px;
}
</style> </head>
<body>
<script src="https://cdn.bootcss.com/d3/3.5.15/d3.js"></script>
<script> var svg = d3.select("body")
.append("svg")
.attr("width", 400)
.attr("height", 400);//向body中添加了一个svg元素
// 自定义数据
var data = [12,25,28,56,96,56,45,78];
//定义比例尺
var xScale = d3.scale.linear()
.domain([0, data.length-1])
.range([0, 300]);
var yScale = d3.scale.linear()
.domain([0, d3.max(data)])
.range([250, 0]);
//使用axis函数来生成坐标轴的组合元素
var xAxis = d3.svg.axis()
.scale(xScale)//坐标轴联立刻度尺,用于缩放
.orient("bottom");//该函数指定坐标轴刻度的方向
var yAxis = d3.svg.axis()
.scale(yScale)
.orient("left");
//插入坐标轴
var gxAxis = svg.append("g")//添加一个g(group)元素,用于存放坐标轴的元素
.attr("class","axis")//添加一个类(类名叫axis),用于修饰坐标轴//其实无影响(非必需代码))
.attr("transform","translate(30,350)")
.call(xAxis);//添加x轴(关键代码,不可省略)
var gyAxis = svg.append("g")
.attr("class","axis")
.attr("transform","translate(30,100)")
.call(yAxis);
// //上面的代码还可以怎么写呢,其实完全可以这样来写
// var xAxis = d3.svg.axis()
// .scale(xScale);
// var yAxis = d3.svg.axis()
// .orient("left")
// .scale(yScale);
// //不定义直接添加也是可以的
// svg.append("g")
// .attr("transform","translate(30,350)")
// .call(xAxis);
// svg.append("g")
// .attr("transform","translate(30,100)")
// .call(yAxis);
// 线段生成器
var line = d3.svg.line()
.x( function(d,i){ return xScale(i); } )
.y( function(d){ return yScale(d); } )
.interpolate("cardinal");
// 折线图
svg.append("path")
.attr("class","MyPath")
.attr("d", line(data) )
.attr("transform","translate(30,100)");
</script>
</body>
</html>
D3学习之坐标系绘制的更多相关文章
- WPF3D学习,立方体的绘制
原文:WPF3D学习,立方体的绘制 以此为一个好的开始吧!一直都太懒,坚持写文章是个不错的开始!碰巧最近在研究WPF3D这块的知识,也为了练练自己的写作水平,整理这篇文章.新手上路,多多关照! 本文先 ...
- D3学习笔记一
D3学习笔记一 什么是D3? D3(全称Data Driven Documents)是一个用来做Web数据可视化的JavaScript函数库.D3也称之为D3.js. D3是2011年由Mike Bo ...
- D3学习之地图
D3学习之地图 (2017.03.09-03.11) 地图的意义 在可视化领域中,将数据点投影和关联到地理区域上,是一个非常关键的内容(体现了可视化中利用读者自身知识常识从而加速吸收信息的原则). G ...
- D3 学习
D3 学习笔记 D3简介 D3全称是Data-Driven Documents数据驱动文档,是一个开源的javascript库,可以用于数据可视化图形的创建,但不仅仅只是这些.可以查看d3帮助文档还有 ...
- HTML5学习总结——canvas绘制象棋(canvas绘图)
一.HTML5学习总结——canvas绘制象棋 1.第一次:canvas绘制象棋(笨方法)示例代码: <!DOCTYPE html> <html> <head> & ...
- iOS学习——Quartz2D学习之UIKit绘制
iOS学习——Quartz2D学习之UIKit绘制 1.总述 在IOS中绘图技术主要包括:UIKit.Quartz 2D.Core Animation和OpenGL ES.其中Core Animati ...
- D3学习之动画和变换
D3学习之动画和变换 ##(17.02.27-02.28) 主要学习到了D3对动画和缓动函数的一些应用,结合前面的选择器.监听事件.自定义插值器等,拓展了动画的效果和样式. 主要内容 单元素动画 多元 ...
- OpenGL入门学习 课程 (三) 绘制几何图形的一些细节问题
http://oulehui.blog.163.com/blog/static/79614698201191832753312/ 先回顾一下我们都学习了些什么: 第一课,编写第一个OpenGL程序第二 ...
- D3力布图绘制--节点自己连自己的实现
案例分析 先看下实现的效果图 实现方法 本篇是在之前写的博文 D3力布图绘制--节点间的多条关系连接线的方法 基础上加修改的,这里放上修改的代码,其他的一样 // DATA var nodes = [ ...
随机推荐
- drf 第一节
drf django-restframework ''' 1.接口:接口的概念.数据接口文档.接口规范(restful).Postman接口测试工具 2.drf请求生命周期 - CBV 3.drf的基 ...
- 【JAVA-算法】 截取2个字符中间的字符串
Java Code /** 截取2个字符中间的字符串 */ private void GetMiddleString() { String str = "BB022220011BB007EB ...
- 017_linuxC++之_多态的引入
多态:一种接口,多种方法(同一种调用方法,根据不同的对象,调用不同类中的函数)静态联编:非虚函数,在编译时确定好动态联编: 1. 对象里有指针,指向虚函数表 2. 通过指针,找到表,调用虚函数 3 ...
- Can't load Microsoft.ReportViewer.ProcessingObjectModel.dll
本机的时候是能正常看到report,但deploy到别的机器上却不行,按说从本机拷个dll过去就可以,但怎么也找不到. 原来要在cmd那里输入C:\WINDOWS\assembly\GAC_MSIL ...
- kong-dashbord本地安装gulp打包报错的解决办法
本地安装kong-dashbord执行npm run build 报如下错误 gulp[]: ../src/node_contextify.cc::]->IsString()' failed. ...
- deepin linux安装为知笔记
sudo apt-get install wiznote
- Django常见命令
在Django的使用过程中需要使用命令让Django进行一些操作,例如创建Django项目,启动Django程序,创建新的APP,数据库迁移等. 1. 创建Django项目 新建一个文件夹来存放项目文 ...
- Yet Another Division Into Teams
E. Yet Another Division Into Teams 首先要想明白一个东西,就是当一个小组达到六个人的时候,它一定可以拆分成两个更优的小组. 这个题可以用动态规划来写,用一个数组来保存 ...
- Java编程思想代码环境配置
官方代码网站已更改 https://github.com/BruceEckel/TIJ4-code 如果导入到IntelliJ中 方法1 在IntelliJ中新建一个Java项目将TIJ4-code- ...
- Python,初次见面请多指教
特点 1.可读性强: 可读性远比听上去重要的多得多.一个程序会被反复的修改,可读性强意味着让你可以在更短的时间内学习和记忆,直接提高生产率. 2.简洁,简洁,简洁: 研究证明,程序员每天可编写的有效代 ...