2015-11-09 3 views
1

Держите получает ошибку консольной Ошибки: Недопустимое значение для атрибута преобразования = "переводить (NaN, NaN)"D3 Pie Ошибка: Недопустимое значение для <text> атрибута преобразования = "переводить (NaN, NaN)"

Re - создала ошибку здесь. http://jsfiddle.net/9f9wonoc/

var width = 360; 
var height = 360; 
var radius = Math.min(width, height)/2; 
var color = { 
'Pass': '#66B51B', 
'Fail': '#d03324' 
} 

var data = [ 
{ label: 'Pass', count: 12 }, 
{ label: 'Fail', count: 10 }, 
]; 

var svg = d3.select('body') 
.append('svg') 
.attr('width', width) 
.attr('height', height) 
.append('g') 
.attr('transform', 'translate(' + (width/2) + ',' + (height/2) + ')'); 

var arc = d3.svg.arc() 
.outerRadius(radius); 

var pie = d3.layout.pie() 
.value(function(d) { return d.count; }) 
.sort(null); 

var path = svg.selectAll(".arc") 
.data(pie(data)) 
.enter().append("g") 
.attr("class", "arc"); 

path.append("path") 
.attr("d", arc) 
.style("fill", function(d) { return color[d.data.label]; }); 

path.append("text") 
.attr("transform", function(d, i) { 
return "translate(" + arc.centroid(d, i) + ")"; 
}) 
.attr("dy", ".35em") 
.style("text-anchor", "middle") 
.text(function(d) { return d.data.count; }); 

Что я делаю неправильно?

ответ

1

Вы пропустили одну маленькой вещь:

вам необходимо установить внутренний радиус 0, как показано ниже:

var arc = d3.svg.arc() 
.outerRadius(radius).innerRadius(0); 

Рабочего код here

Надеется, что это помогает!

Смежные вопросы