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 = [ ...
随机推荐
- struts2的Action中使用spring的@Transactional注解事务出错
1.在Struts2使用的是spring管理对象. 使用spring的注解式事务配置, 在action的方法中直接使用事务遇到的问题. public class testAction extends ...
- [笔记]C++声明返回数组指针的函数
数组指针的声明:type (*name)[size]; 由于数组不能拷贝,所以函数不能返回数组.但是函数可以返回指针和引用,所以函数可以返回数组指针或引用. 和数组指针的声明类似: type (*fu ...
- Visual Studio Code(VS code)介绍
一.日常安利 VS code VS vode特点: 开源,免费: 自定义配置 集成git 智能提示强大 支持各种文件格式(html/jade/css/less/sass/xml) 调试功能强大 各种方 ...
- Leetcode题目236.二叉树的最近公共祖先(中等)
题目描述: 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先. 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p.q,最近公共祖先表示为一个结点 x,满足 x 是 p.q 的祖先 ...
- 删除Linux系统多余的引导
问题: 电脑中安装了多个Linux系统,需要删除不用的Linux系统的引导 解决方法: open terminal: su - 切换root用户 cd /boot/ ls ... grub ...
- [Java]用 MessageFormat 拼接组合字符串
package com.hy; import java.text.MessageFormat; public class Test3 { public static void main(String[ ...
- SpringMVC整合Springfox-Swagger
https://www.jianshu.com/p/ab10860945c3 验证通过 关于Swagger的简介就不占篇幅了... 本文使用的Springfox-Swagger版本为2.8.0 要整合 ...
- 【转】APIJSON,让接口见鬼去吧!
我: APIJSON,让接口和文档见鬼去吧! https://github.com/TommyLemon/APIJSON 服务端: 什么鬼? 客户端: APIJSON是啥? 我: APIJSON是一种 ...
- 几句java代码搞定十万个为什么数据
最近想做一个app,为小朋友推荐十万个为什么的故事,但是找了很久数据,发现挺难的找的,又去写爬虫,发现没有一个好的网站可以爬,最后一个偶然的机会在csdn上发现一个可用的接口,很快就把问题解决了,下面 ...
- 【分布式事务】使用atomikos+jta解决分布式事务问题
一.前言 分布式事务,这个问题困惑了小编很久,在3个月之前,就间断性的研究分布式事务.从MQ方面,数据库事务方面,jta方面.近期终于成功了,使用JTA解决了分布式事务问题.先写一下心得,后面的二级提 ...