2013-04-26 14 views

Trả lời

1

Tôi không chắc chắn những gì bạn đã thử rất béo, nhưng ví dụ trong here là khá thẳng về phía trước.

.showValues(true) khá nhiều mẹo.

Hy vọng điều đó sẽ hữu ích.

+0

nhờ bro .. nhưng tôi đã cố gắng để có được điều này làm việc trên một biểu đồ đa thanh .. bây giờ tôi đã chỉnh sửa các câu hỏi để đề cập đến điều này một cách rõ ràng. – azi

+0

@azi - bạn có thử thêm dòng đó vào biểu đồ đa thanh không? anh đã làm gì cho đến nay? – shabeer90

+0

vâng, tôi đã cố gắng mà .. không hoạt động ... tôi có biểu đồ đa thanh làm việc trên sản xuất .. chỉ muốn hiển thị các giá trị trên đầu ... không tìm thấy bất kỳ tài liệu tham khảo bất cứ nơi nào ... để thiên đường 't đã thử bất cứ điều gì (khác với những gì bạn đề nghị) – azi

4

Duplicate của How to display values in Stacked Multi-bar chart - nvd3 Graphs

Có một sửa chữa, bạn có thể thực hiện cho mình ở https://gist.github.com/topicus/217444acb4204f364e46

EDIT: sao chép mã nếu liên kết github bị loại bỏ:

// You need to apply this once all the animations are already finished. Otherwise labels will be placed wrongly. 

d3.selectAll('.nv-multibar .nv-group').each(function(group){ 
    var g = d3.select(this); 

    // Remove previous labels if there is any 
    g.selectAll('text').remove(); 
    g.selectAll('.nv-bar').each(function(bar){ 
    var b = d3.select(this); 
    var barWidth = b.attr('width'); 
    var barHeight = b.attr('height'); 

    g.append('text') 
     // Transforms shift the origin point then the x and y of the bar 
     // is altered by this transform. In order to align the labels 
     // we need to apply this transform to those. 
     .attr('transform', b.attr('transform')) 
     .text(function(){ 
     // Two decimals format 
     return parseFloat(bar.y).toFixed(2); 
     }) 
     .attr('y', function(){ 
     // Center label vertically 
     var height = this.getBBox().height; 
     return parseFloat(b.attr('y')) - 10; // 10 is the label's magin from the bar 
     }) 
     .attr('x', function(){ 
     // Center label horizontally 
     var width = this.getBBox().width; 
     return parseFloat(b.attr('x')) + (parseFloat(barWidth)/2) - (width/2); 
     }) 
     .attr('class', 'bar-values'); 
    }); 
});