d3 微库不工作
d3 microlibraries not working
我刚开始学习 d3,但我不明白为什么 d3 中的其他微库在正确加载 d3 后无法正常工作。例如,如果我做类似
var xScale = d3.scale.linear().domain([0, 20]).range([0, width]);
var yScale = d3.scale.linear().domain([0, 20]).range([height, 0]);
我的浏览器控制台显示 Uncaught TypeError: Cannot read property 'linear' of undefined
,而我在许多示例中都看到了它。同样,类似
var xAxis = d3.svg.axis().scale(xScale).orient("bottom");
var yAxis = d3.svg.axis().scale(yScale).orient("left");
会产生关于 svg
的错误。我明白一旦我这样做
<script src="d3-folder/d3.js"></script>
所有其他较小的库应该都可用。为什么在我的系统上不是这样?
听起来像是您包含的 d3 文件的版本问题。您使用的是 D3 V3.x 还是 V4.x?
在 V3.x 中,您使用的是您发布的 liner 秤:
d3.scale.linear().domain([0, 20]).range([0, width]);.
但在 V4.x 他们将命名空间更改为:
d3.scaleLinear().domain([0, 20]).range([0, width]);
轴也在不同的区域分开:
d3.axisTop - create a new top-oriented axis generator
d3.axisRight - create a new right-oriented axis generator
d3.axisBottom - create a new bottom-oriented axis generator
d3.axisLeft - create a new left-oriented axis generator
在这里您可以找到 D3 V4.x 的实际 API 参考:https://github.com/d3/d3/blob/master/API.md
我刚开始学习 d3,但我不明白为什么 d3 中的其他微库在正确加载 d3 后无法正常工作。例如,如果我做类似
var xScale = d3.scale.linear().domain([0, 20]).range([0, width]);
var yScale = d3.scale.linear().domain([0, 20]).range([height, 0]);
我的浏览器控制台显示 Uncaught TypeError: Cannot read property 'linear' of undefined
,而我在许多示例中都看到了它。同样,类似
var xAxis = d3.svg.axis().scale(xScale).orient("bottom");
var yAxis = d3.svg.axis().scale(yScale).orient("left");
会产生关于 svg
的错误。我明白一旦我这样做
<script src="d3-folder/d3.js"></script>
所有其他较小的库应该都可用。为什么在我的系统上不是这样?
听起来像是您包含的 d3 文件的版本问题。您使用的是 D3 V3.x 还是 V4.x?
在 V3.x 中,您使用的是您发布的 liner 秤:
d3.scale.linear().domain([0, 20]).range([0, width]);.
但在 V4.x 他们将命名空间更改为:
d3.scaleLinear().domain([0, 20]).range([0, width]);
轴也在不同的区域分开:
d3.axisTop - create a new top-oriented axis generator
d3.axisRight - create a new right-oriented axis generator
d3.axisBottom - create a new bottom-oriented axis generator
d3.axisLeft - create a new left-oriented axis generator
在这里您可以找到 D3 V4.x 的实际 API 参考:https://github.com/d3/d3/blob/master/API.md