D3+svg 案例
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<script type="text/javascript" src="d3.js"></script>
<title>柱状图</title>
<style type="text/css">
.axis path,
.axis line {
fill: none;
stroke: black;
shape-rendering: crispEdges;/*其中的shape-rendering属性是一个SVG属性,作用是让坐标轴和刻度线边缘更整齐*/
}
.axis text {
font-family: sans-serif;
font-size: 11px;
}
</style>
<script type="text/javascript">
window.onload=function(){
<!-- ————————————————————————————制作柱状图———————————————————————————— -->
var dataset = [ 5, 10, 13, 19, 21, 25, 22, 18, 15, 13,
11, 12, 15,20, 18, 17, 16, 18, 23, 25];//数据源
var width=500;
var height=100;
var barPadding =5; // 柱子间隔
var svg=d3.select("body").append("svg").attr("width",width).attr("height",height);
var rect=svg.selectAll("rect") .data(dataset).enter().append("rect")
.attr("x",function(d,i){return i * (width/dataset.length);}).attr("y",function(d){return height-d*4})
.attr("width",width/dataset.length - barPadding).attr("height",function(d){return d*4})
.attr("fill", function(d) {return "rgb(0, 0,"+(d * 10)+")"});
var text=svg.selectAll("text").data(dataset).enter().append("text").text(function(d){return d})
.attr("x", function(d, i) {return i * (width / dataset.length) + (width / dataset.length - barPadding)/2})
.attr("y", function(d) {return height - (d * 4) + 14;}).attr("font-family", "sans-serif")
.attr("font-size", "11px").attr("fill", "white").attr("text-anchor", "middle");
<!-- ————————————————————————————制作散点图———————————————————————————— -->
var dataArr = [
[11, 20], [480, 90], [250, 50], [100, 33], [330, 95],
[410, 12], [475, 44], [25, 67], [85, 21], [220, 88]
];
var svg = d3.select("body").append("svg").attr("width",width).attr("height",height);
var circle=svg.selectAll("circle") .data(dataArr).enter().append("circle");
circle.attr("cx", function(d) {return d[0]}).attr("cy", function(d){return d[1]})
.attr("r", function(d) { return Math.sqrt(height - d[1])});
var text=svg.selectAll("text").data(dataArr).enter().append("text").text(function(d){return d[0]+","+d[1]});
text.attr("x", function(d) {return d[0];}).attr("y", function(d) {return d[1];})
.attr("font-family", "sans-serif").attr("font-size", "11px").attr("fill", "red");
<!-- ————————————————————————————制作尺度———————————————————————————— -->
//domain():设置尺度的输入范围,参数以数组的形式传入。
//range() :输出范围的设置
var padding =30;
var xScale = d3.scale.linear().domain([0, d3.max(dataArr, function(d) { return d[0]})]).range([padding, width-padding*2]);
var yScale = d3.scale.linear().domain([0, d3.max(dataArr, function(d) { return d[1]})]).range([height-padding,padding]);
var rScale = d3.scale.linear().domain([0, d3.max(dataArr, function(d) { return d[1]})]).range([2, 5]);
//__________________________散点图+尺度_________________________________
var svg = d3.select("body").append("svg").attr("width",width).attr("height",height);
var circle=svg.selectAll("circle") .data(dataArr).enter().append("circle");
circle.attr("cx", function(d) {return xScale(d[0])}).attr("cy", function(d){return yScale(d[1])})
.attr("r", function(d) { return rScale(d[1])});
var text=svg.selectAll("text").data(dataArr).enter().append("text").text(function(d){return d[0]+","+d[1]});
text.attr("x", function(d) {return xScale(d[0])}).attr("y", function(d) {return yScale(d[1])})
.attr("font-family", "sans-serif").attr("font-size", "11px").attr("fill", "red");
<!-- ————————————————————————————制作坐标轴 axis()———————————————————————————— -->
var xAxis = d3.svg.axis().scale(xScale).orient("bottom").ticks(5); //设置x轴
var yAxis = d3.svg.axis().scale(yScale).orient("left").ticks(5);//设置Y轴
svg.append("g").attr("class", "axis").attr("transform", "translate(0," + (height - padding) + ")").call(xAxis);
svg.append("g") .attr("class", "axis").attr("transform", "translate(" + padding + ",0)").call(yAxis);
}
</script>
</head>
<body> </body>
</html>
D3+svg 案例的更多相关文章
- d3.svg.line()错误:TypeError: d3.svg.line is not a function
var line_generator= d3.svg.line() .x(function (d,i) { return i; }) .y(function (d) { return d; }) 错误 ...
- 如何用DAX实现查看每个月中不同类别排名前一位,以及一个简单的svg案例
现在给大家带来的是如何用DAX实现查看每个月中不同类别的排名前一位,最终完成效果如下!!! 首先我们需要两张简单的表 基数表 和类别表 当我们创建好表之后,我们再创建一个表格,然后我们将类别表里的列值 ...
- [D3] SVG Graphics Containers and Text Elements in D3 v4
SVG is a great output format for data visualizations because of its scalability, but it comes with s ...
- SVG案例:动态去创建元素createElementNS
案例一: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <titl ...
- SVG 案例:动态去创建分支节点,当鼠标经过某个节点时,分支线会高亮
css: <style> #div1{ width:780px; height:400px; background:#fff; margin:20px auto; overflow:hid ...
- d3 svg简单学习
矩形 <rect x="/> 圆形 <circle cx="/> 椭圆 <ellipse cx="/> 线 <line x1=& ...
- svg操纵方案 基于 D3 还是 angular?
之前还是想简单了, 现在重新写这篇.把逻辑拆分粒度的辨析,放到外面去. 问题提出:svg控制方案 基于 D3 还是 angular 根据这个,html 4种展现样式:普通的html,svg,2D ca ...
- svg + d3
为了实现元素的添加,删除,拖拽,左键点击,右键单击,悬浮等功能,使用了d3 + svg 的技术来实现界面. 最开始是采用canvas,但是由于功能原因放弃了该技术,可以看下 canvas简介 另附:c ...
- 使用d3.v3插件绘制出svg图
众所周知,这个插件使用的svg技术,而IE8(包括IE8)之前的浏览器是不支持svg的 接下来看代码吧 从后台获取到带id和父id的目录数据[json格式] var module = requestU ...
随机推荐
- 五步搞定Android开发环境部署
引言 在windows安装Android的开发环境不简单也说不上算复杂,本文写给第一次想在自己Windows上建立Android开发环境投入 Android浪潮的朋友们,为了确保大家能顺利完成开发 ...
- Ubuntu系统网卡IP配置方法
主要文件为:/etc/network/interfaces 在没有任何配置的情况下,其内容为以下两行: auto loiface lo inet loopback 配置网口为动态获取IP的,在末尾加上 ...
- PerconaXtraBackup 压缩备份集
压缩备份集 stream模式支持且只支持:tar 和 xbstream 两种格式,后者是xtrabackup提供的专有格式,解包时需要同名的专用命令处理 innobackupex --defaults ...
- [转]oracle job有定时执行的功能,可以在指定的时间点或每天的某个时间点自行执行任务。
oracle job有定时执行的功能,可以在指定的时间点或每天的某个时间点自行执行任务. 一.查询系统中的job,可以查询视图 --相关视图 select * from dba_jobs; selec ...
- Tomcat实现分析(一)--类加载及容器组件
启动脚本 启动命令中的参数如下: org.apache.catalina.startup.Bootstrap start -Djava.util.logging.config.file=/opt/ap ...
- centos/redhat安装mysql
1.从http://dev.mysql.com/downloads/repo/ 下载对应的rpm文件,我的是版本7,所以下载:mysql-community-release-el7-5.noarch. ...
- ubuntu安装octave的小坑
出现了以下情况: After this operation, 163 MB of additional disk space will be used.Do you want to continue? ...
- 测试CAS
参考博客 http://www.cnblogs.com/adolfmc/archive/2012/07/16/2593291.html 准备工作: 1.cas服务器:http://cas:8443/l ...
- Redis中Value使用hash类型的效率是普通String的两倍
什么Redis? 点击这里 最近要开发的一个项目是分布式缓存组件,解决参数缓存高效获取的问题.参数达到了500万级别,刚刚开始了解Redis.做设计的时候考虑到Value使用哪种类型的问题? 主要面临 ...
- ng2-timesheet, 一个timesheet.js的angular2复制版
一个 timesheet.js (JavaScript library for HTML5 & CSS3 time sheets) 的 Angular 2 复制版 用法: npm instal ...