我正在尝试做一些简单的d3,但一直都会出错:
app.js:4未捕获的TypeError:无法读取属性' linear'未定义的
此代码直接来自行动中的D3.js:https://www.manning.com/books/d3-js-in-action
html和js如下:
var yScale = d3.scale.linear()
.domain([0,100,500])
.range([0,50,100])
.clamp(true);
d3.select("svg")
.selectAll("rect")
.data([14, 68, 24500, 430, 19, 1000, 5555])
.enter()
.append("rect")
.attr("width", 10)
.attr("height", function(d) {return yScale(d);})
.style("fill", "blue")
.style("stroke", "red")
.style("stroke-width", "1px")
.style("opacity", .25)
.attr("x", function(d,i) {return i * 10;})
.attr("y", function(d) {return 100 - yScale(d);});
HTML:
<!doctype html>
<html>
<head>
</head>
<body>
<svg />
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/4.1.0/d3.js" type="text/JavaScript"></script>
<script src="app.js" type="text/JavaScript"></script>
</body>
</html>
答案 0 :(得分:3)
显然,自动作中的D3.js发布后,语法已发生变化......来自:
d3.scale.linear().domain().range();
到
d3.scaleLinear().domain().range();
修改强>
D3.js版本4.x最近问世了。大多数教程使用3.x,因此您可能希望在学习时使用它。