2016-07-29 22 views
-2
<html> 
<head> 
<script src="http://d3js.org/d3.v3.min.js"></script> 
</head> 
<body> 
<script> 
    var dset=[40,50,60]; 
    var dvar=d3.select("body") 
.append("svg") 
.attr("width", 500) 
.attr("height", 500); 


var ba=dset.selectAll("rect") 
    .data(dset) 
    .enter() 
    .append("rect") 
    .attr("width",function(d){return d;}) 
    .attr("hetight",50); 
    </script> 
    </body> 
    </html> 

背景:在這行代碼全選()函數不工作無法從d3.js代碼獲取輸出?

+3

而不是'dset.selectAll( 「矩形」)'它應該是'dvar.selectAll( 「矩形」)' – Cyril

回答

0

你已經做了小失誤。運行下面的代碼,它會工作。

<html> 
<head> 
<script src="http://d3js.org/d3.v3.min.js"></script> 
</head> 
<body> 
<script> 
var dset=[40,50,60]; 
var dvar=d3.select("body") 
.append("svg") 
.attr("width", 500) 
.attr("height", 500); 


var ba= dvar 
.selectAll("rect") 
.data(dset) 
.enter() 
.append("rect") 
.attr("width",function(d){return d;}) 
.attr("height",50); 
</script> 
</body> 
</html> 

在你的例子中,你只能看到單個框。如果你想看到所有的框,你需要在attr(「height」,50)之後添加下面的代碼。

.attr("y", function(d, i){ 
    return i * 100; 
}); 

的完整代碼爲下: -

<html> 
<head> 
<script src="http://d3js.org/d3.v3.min.js"></script> 
</head> 
<body> 
<script> 
var dset=[40,50,60]; 
var dvar=d3.select("body") 
.append("svg") 
.attr("width", 500) 
.attr("height", 500); 


var ba= dvar 
.selectAll("rect") 
.data(dset) 
.enter() 
.append("rect") 
.attr("width",function(d){return d;}) 
.attr("height",50) 
.attr("y", function(d, i){ 
          return i * 100; 
         });; 
</script> 
</body> 
</html> 
+0

謝謝你你的幫助。我只是試圖看到單個盒子。但是我提到的相同的代碼是在其他系統中執行的。當我在瀏覽器上運行這個時,我無法獲得輸出。 – sharath

+0

我不知道你的工作原因是如何定義別的東西和使用別的東西。 我的意思是你正在定義「dVar」和使用dset(var ba =「dset」.selectAll(「rect」)) 你可以使用我的代碼它應該適用於所有瀏覽器 –