日期:2014-05-16 浏览次数:20387 次
Quantitative Scales
Linear Scales
Identity Scales
Power Scales
可以参考https://github.com/mbostock/d3/wiki/Quantitative-Scales
我们一般采用线性缩放
定义域范围domain([100, 500])
值域范围.range([10, 350])
var scale = d3.scale.linear()
.domain([100, 500])
.range([10, 350]);
返回所有坐标中X值最大的X
d3.max(dataset, function(d) { //Returns 480
return d[0]; //References first value in each sub-array
});
X轴缩放
var xScale = d3.scale.linear()
.domain([0, d3.max(dataset, function(d) { return d[0]; })])
.range([0, w]);
Y轴缩放
var yScale = d3.scale.linear()
.domain([0, d3.max(dataset, function(d) { return d[1]; })])
.range([0, h]);
.attr("cx", function(d) {
return d[0];
})
缩放后的坐标X值
.attr("cx", function(d) {
return xScale(d[0]);
})
Y值同样如此:
.attr("cy", function(d) {
return d[1];
})
修改后就是:
.attr("cy", function(d) {
return yScale(d[1]);
})
.attr("x", function(d) {
return d[0];
})
.attr("y", function(d) {
return d[1];
})
变成:
.attr("x", function(d) {
return xScale(d[0]);
})
.attr("y", function(d) {
return yScale(d[1]);
})
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>testD3-10-scale.html</title>
<script type="text/javascript" src="http://localhost:8080/spring/js/d3.v3.js"></script>
<style type="text/css">
</style>
</head>
<body>
<script type="text/javascript">
//Width and height
var w = 500;
var h = 100;
var dataset = [
[5, 20], [480, 90], [250, 50], [100, 33]