d3.js学习10----折线图的制作
一切尽在注释中………………
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>ZheXian</title>
<script type="text/javascript"src="d3.js"></script>
<link rel="stylesheet"type="text/css" href="bee.css" />
</head>
<body>
<div id="part3">
</div>
<scripttype="text/javascript">
var dataset=[5,3,1,5,2,4,2];
varxMarks=['Mon','Tues','Wed','Thur','Fri','Sat','Sun'];
var w=600;
var h=400;
var title="Beijing";
var subTitle="temperature";
//定义画布
var svg=d3.select("body")
.append("svg")
.attr("width",w)
.attr("height",h);
//添加标题
svg.append("g")
.append("text")
.text(title)
.attr("class","title")
.attr("x",220)
.attr("y",20);
//添加副标题
svg.append("g")
.append("text")
.text(subTitle)
.attr("class","subTitle")
.attr("x",220)
.attr("y",40);
//横坐标轴比例尺
var xScale = d3.scale.linear()
.domain([0,dataset.length-1])
.range([60,400]);//这个range相当于横轴的左右平移
//纵坐标轴比例尺
var yScale = d3.scale.linear()
.domain([0,d3.max(dataset)])
.range([220,60]);
//定义横轴网格线
var xInner = d3.svg.axis()
.scale(xScale)
.tickSize(-160,0,0)//调整网格线长度
.orient("bottom")
.ticks(dataset.length);
//添加横轴网格线
svg.append("g")
.attr("class","inner_line")
.attr("transform","translate(0," + 220 + ")")
//用来把纵的网格线上移的
.call(xInner)
.selectAll("text")
.text("");
//定义纵轴网格线
var yInner = d3.svg.axis()
.scale(yScale)
.tickSize(-340,0,0)
.tickFormat("")
.orient("left")
.ticks(5);
//添加纵轴网格线
var yBar=svg.append("g")
.attr("class","inner_line")
.attr("transform","translate("+60+",0)")
.call(yInner);
//定义横轴
var xAxis = d3.svg.axis()
.scale(xScale)
.orient("bottom")
.ticks(dataset.length);
//添加横坐标轴并通过编号获取对应的横轴标签
var xBar=svg.append("g")
.attr("class","axis")
.attr("transform","translate(0," + 220 + ")")//用来上下平移横轴位置
.call(xAxis)
.selectAll("text")
.text(function(d){return xMarks[d];});
//定义纵轴
var yAxis = d3.svg.axis()
.scale(yScale)
.orient("left")
.ticks(5);//这个是细分度
//添加纵轴
var yBar=svg.append("g")
.attr("class", "axis")
.attr("transform","translate("+60+",0)")
.call(yAxis);
//添加折线
var line = d3.svg.line()
.x(function(d,i){return xScale(i);})
.y(function(d){return yScale(d);});
var path=svg.append("path")
.attr("d", line(dataset))
.style("fill","#F00")
.style("fill","none")
.style("stroke-width",1)
.style("stroke","#09F")
.style("stroke-opacity",0.9);
//添加系列的小圆点
svg.selectAll("circle")
.data(dataset)
.enter()
.append("circle")
.attr("cx", function(d,i) {
return xScale(i);
})
.attr("cy", function(d) {
return yScale(d);
})
.attr("r",5)
.attr("fill","#09F");
</script>
</body>
</html>
Css文件代码:
body{
height: 100%;
}
.title{font-family:Arial,微软雅黑;font-size:18px;text-anchor:middle;}
.subTitle{font-family:Arial,宋体;font-size:12px;text-anchor:middle;fill:#666}
.axis path,
.axis line {
fill: none;
stroke: black;
shape-rendering: crispEdges;
}
.axis text {
font-family: sans-serif;
font-size: 11px;
fill:#999;
}
.inner_line path,
.inner_line line {
fill: none;
stroke:#E7E7E7;
shape-rendering: crispEdges;
}
d3.js学习10----折线图的制作相关推荐
- d3.js实现力导向图圈选框选
#d3.js实现力导向图圈选框选 今天给大家带来的是如何在2D可视化图形中加入通过鼠标拖动圈选功能,以力导向图为例. ##最终效果 demo跳转 ##代码解析 我们是要在节点的上方绘制一个矩形覆盖节点 ...
- Unity3D开发之折线图的制作(二)
一年前写过一篇折线图的制作,当时显示效果还可以,只不过因为之前刚接触写博客,所以写的内容不是很完善,加上比较忙,都是草率记录的,代码结构也不是很好.昨天我又把这个项目的代码熟悉了一遍,然后把代码更改精 ...
- d3.js实现股权穿透图(vue+d3.js)
d3.js实现股权穿透图 业务需求 1.实现的效果图 2.安装依赖 3.全部代码(复制粘贴即可实现) 参考git地址 业务需求 前段时间写过一篇使用relation-graph插件实现的股权穿透图效果 ...
- flot.js ajax,jquery.flot.js简单绘制折线图用法示例
本文实例讲述了jquery.flot.js简单绘制折线图用法.分享给大家供大家参考,具体如下: 1.完整实例代码: 折线图 $(function() { AlPriceQuery(); }); fun ...
- 原生html js css绘制折现图,HTML5教程 Chart.js自定义提示折线图
本篇教程探讨了HTML5教程 Chart.js自定义提示折线图,希望阅读本篇文章以后大家有所收获,帮助大家HTML5+CSS3从入门到精通 . < var randomScalingFactor ...
- pyecharts查看版本_pyecharts v1 版本 学习笔记 折线图,面积图
折线图 折线图 基本demo import pyecharts.options as opts from pyecharts.charts import Line c = ( Line() .add_ ...
- 【D3.js 学习总结】12、D3布局-集群图
d3.layout.cluster() 集群图是一种用于表示包含与被包含关系的图表. 集群图(Cluster)的API说明 cluster.children - 取得或者设置子节点的访问器函数. cl ...
- 饼状图的实现方法html,D3.js实现饼状图的方法详解
前言 小编在之前已经跟大家分享过关于怎样用柱状图和折线图这两种基本图表.这两种图表都是有坐标轴的,现在来说一种没有坐标轴的图表--饼图. 饼状图实现 还是和之前一样,我们先把简单的画图框架搭起来,添加 ...
- 用D3.js画树状图
做项目遇到一个需求,将具有层级关系的词语用树状图的形式展示它们之间的关系,像这样: 或者是这样: 上面的图片只是样例,跟我下面的代码里面用的数据不同 网上有很多这种数据可视化展示的js控件,我这里选择 ...
- D3.js实现力导向图(Dray和Zoom)
今天遇到个问题就是把json(里面nodes和edges属性)文件通过D3.js展示出来,下午终于弄出来了,写篇博客记录一下. 先展示一下效果图: 放大后是这个效果: 什么是力导向图 D3.js官网: ...
最新文章
- 安装、连接MS SQL Server 2000的问题
- della计算机驱动检测,nexus6安装BPTOOLS中的diag驱动图文教程
- Windows Phone 7“芒果”更新带来浏览器重大升级:IE Mobile 9
- 前端学习(2887):如何短时间内实现v-for proxy代理
- 基于Jenkins + Tomcat 的安卓客户端可持续化构建及发布下载(loltube.cn)
- SpringMVC访问流程
- 数据清洗+特征构造:bureau.csv
- html怎么用pdf保存,html保存为PDF
- 建站之星安装提示无法连接数据库
- STAMP:扩增子、宏基因组统计分析神器(中文帮助文档)
- Retina 显示屏
- 软件项目管理期末复习整理
- 李佳琦以特殊人才落户上海,“带货一哥”即将成为“新上海人”
- 人际关系和心理活动机制总结 -- 宁向东的清华管理学课总结
- 如何学习SDN及网络自动化
- android系统应用开发常用的adb命令个人收藏集锦(不断更新)
- html5 video播放按钮放在中间,在html5视频控制区跟踪点击播放按钮(Track clicks to play button in html5 video control area)...
- windows 若依部署
- 制作企业网站一般要花多少钱
- 最新骗术,骗子的手段越来越高了(转贴)
热门文章
- Rabbitmq使用优先级队列实现消息插队
- python条件句格式_python条件语句是什么?条件语句的一般格式是什么样的?
- day23_1-re模块之转义字符、分组、方法
- 中富之命能有多少钱_算命中富 算命中财运普通和中富指什么,多少钱算普通?多少钱算中富?...
- 离线安装vscode
- 使用豆瓣源下载python包
- 如何用python爬取豆瓣图书 Top 250
- oracle的dual用法
- C语言/C++常见习题问答集锦(十九)之C语言与漫天飞雪
- TP-LINK实现远程办公