2016-11-14 66 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

看起來這裏有太多過時的東西。這似乎是我的失敗。 –