日期:2014-05-16 浏览次数:20318 次
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]