2013-02-27 120 views
6

学习D3会很好。阅读了很多例子之后,我想我明白了。我的第一个项目是制作一个色轮,为简单起见没有转换。但即使这对我的第一个项目来说也不够简单!对于项目零,我试图让一些东西显示在屏幕上。希望我写的东西(和亲爱的阅读已经修复),而不是一个例子。非常简单的D3:如何画弧?

我做错了什么? http://jsfiddle.net/aGdMX/1/

var arc = d3.svg.arc() 
    .innerRadius(40) 
    .outerRadius(100) 
    .startAngle(0) 
    .endAngle(1) 
    ; 

var chart = d3.select("body").append("svg:svg") 
    .attr("class", "chart") 
    .attr("width", 420) 
    .attr("height", 420).append("svg:g") 
    .attr("transform", "translate(200,200)") 
    ; 

chart.selectAll("path") 
    .data(data) 
    .enter().append("svg:path") 
    .attr("fill", function(d, i){ 
     return d3.rgb("black"); 
    }) 
    .attr("d", arc) 
    ; 

谢谢

回答

11

这里你举的例子没有定义任何数据。如果你只是想静态绘制SVG,跳过全选()和数据()绑定:

chart 
    .append("svg:path") 
    .attr("fill", function(d, i){ 
     return d3.rgb("black"); 
    }) 
    .attr("d", arc) 
    ; 

或定义一些数据,并用它来驱动绘图:

http://jsfiddle.net/findango/aGdMX/2/

(加.attr("fill" ...应该是.style("fill" ...)

+0

感谢您使用jsfiddle链接。我很失望,在这样一个简单的例子中,我可以犯一个以上的错误。 – 2013-02-27 23:24:13