2016-11-14 77 views
0

我只是在学习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> 

所有其他小型图书馆应该可用。为什么它不是我的系统?

回答

1

听起来像包含的d3文件的版本问题。你使用D3 V3.x还是V4.x?
在V3.x的您使用的是线性无鳞片状您发布:

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

+0

非常感谢。我正在使用v4.x.是的scaleLinear()正在工作。如何d3.svg和d3.axis?任何想法? –

+0

看起来这里有太多过时的东西。这似乎是我的失败。 –