<!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 案例的更多相关文章

  1. 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; }) 错误 ...

  2. 如何用DAX实现查看每个月中不同类别排名前一位,以及一个简单的svg案例

    现在给大家带来的是如何用DAX实现查看每个月中不同类别的排名前一位,最终完成效果如下!!! 首先我们需要两张简单的表 基数表 和类别表 当我们创建好表之后,我们再创建一个表格,然后我们将类别表里的列值 ...

  3. [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 ...

  4. SVG案例:动态去创建元素createElementNS

    案例一: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <titl ...

  5. SVG 案例:动态去创建分支节点,当鼠标经过某个节点时,分支线会高亮

    css: <style> #div1{ width:780px; height:400px; background:#fff; margin:20px auto; overflow:hid ...

  6. d3 svg简单学习

    矩形 <rect x="/> 圆形 <circle cx="/> 椭圆 <ellipse cx="/> 线 <line x1=& ...

  7. svg操纵方案 基于 D3 还是 angular?

    之前还是想简单了, 现在重新写这篇.把逻辑拆分粒度的辨析,放到外面去. 问题提出:svg控制方案 基于 D3 还是 angular 根据这个,html 4种展现样式:普通的html,svg,2D ca ...

  8. svg + d3

    为了实现元素的添加,删除,拖拽,左键点击,右键单击,悬浮等功能,使用了d3 + svg 的技术来实现界面. 最开始是采用canvas,但是由于功能原因放弃了该技术,可以看下 canvas简介 另附:c ...

  9. 使用d3.v3插件绘制出svg图

    众所周知,这个插件使用的svg技术,而IE8(包括IE8)之前的浏览器是不支持svg的 接下来看代码吧 从后台获取到带id和父id的目录数据[json格式] var module = requestU ...

随机推荐

  1. VS非web项目使用Transformation配置文件

    Web项目中的Transformation使用起来非常方便,特别是本地与服务器情况不一致时调试下以及webdeploy的配合使用. 步骤: 1. 在项目中新建App.Debug.Config及App. ...

  2. JQuery FullCalendar(一)

    FullCalendar官网:http://arshaw.com/fullcalendar FullCalendar中文API:http://blog.sina.com.cn/s/blog_9475b ...

  3. zmq学习笔记

    1 zmq_socket(3) Manual Page 1.1 一个socket可连接多个对端socket: 通过使用多个zmq_connect() 1.2 一个socket可绑定到多个地址上接受连接 ...

  4. input文本框去除单击时的边框的方法

    前端开发写的input文本框标签后单击时可以看到有边框,去除边框的方法: input{     outline:medium; }

  5. cocos2d-x项目实现android视频播放参考链接

    http://blog.csdn.net/xiaominghimi/article/details/6870259 http://blog.csdn.net/kaitiren/article/deta ...

  6. 更改Android Studio的主题背景

    看到别人炫酷的主题,好奇心使然,想要选择一个自己喜欢的炫酷背景,于是乎百度,动手尝试更换各种主题. 保存下来,留着以后想换主题的时候看. 1.Android Studio自带主题 File -> ...

  7. js学习笔记之一

    一.Javascript 中的对象 1. 建立自定义对象 方法1:对象={属性1:属性值1,属性2:属性值2……属性n:属性值n} 方法2:先定义构造函数,再new创建对象实例. 如: functio ...

  8. redmine中创建项目与跟踪标签(原创)

    今天来说下本公司所用到的项目管理工具redmine,总体来说还是比较好用的.redmine中可以记录项目的整个过程,可创建跟踪标签(里程碑.需求用例.功能.任务.缺陷)来进行对项目的管控.跟踪标签根据 ...

  9. 位运算(&)实现分享弹窗上的图标动态显示/隐藏

    一  需求     要求自定义弹窗,上面动态显示多种分享平台,根据后台api接口传递过来的type控制显示哪些平台icon     1 定义平台变量,用2的几次方来定value     2 若要显示那 ...

  10. git 本地库提交至远程服务器

    1. git init 2. git add . 3. git commit -am "###"      -------以上3步只是本地提交 4.git remote add o ...