2016-03-21 79 views
2

我想toottip添加到我的D3圖表,但我不能做so..Any幫助將不勝感激..TootTip問題與d3.js圖表​​

程序代碼:

var w = 300; 
    var h = 250; 
    var r = h/2; 
    var color = d3.scale.category20c(); 
    var data = [{ "label": "1", "value": 64 }, 
         { "label": "2", "value": 1 }, 
         { "label": "3", "value": 19 }, 
         { "label": "4", "value": 17 }, 
         { "label": "5", "value": 1 }]; 
    var tip = d3.tip() 
     .attr('class', 'd3-tip') 
     .offset([-10, 0]) 
     .html(function (d) { 
      return "<strong>Frequency:</strong> <span style='color:red'>" + d.label + "</span>"; 
     }); 
    var vis = d3.select('#chart').append("svg:svg").data([data]).attr("width", w).attr("height", h).append("svg:g").attr("transform", "translate(" + r + "," + r + ")"); 
    var pie = d3.layout.pie().value(function (d) { return d.value; });   
    var arc = d3.svg.arc().outerRadius(r);  
    var arcs = vis.selectAll("g.slice").data(pie).enter().append("svg:g").attr("class", "slice").on('mouseover', tip.show) 
    .on('mouseout', tip.hide); 
    arcs.append("svg:path") 
     .attr("fill", function (d, i) { 
      return color(i); 
     }) 
     .attr("d", function (d) { 

      console.log(arc(d)); 
      return arc(d); 
     }); 


    arcs.append("svg:text").attr("transform", function (d) { 
     d.innerRadius = 0; 
     d.outerRadius = r; 
     return "translate(" + arc.centroid(d) + ")"; 
    }).attr("text-anchor", "middle").text(function (d, i) { 
     return data[i].label; 
    } 
      ); 
+0

嘗試'。對( '鼠標懸停',函數(){tip.show()})。在( '鼠標移開',函數(){tip.hide()} );'。還有任何控制檯錯誤? – murli2308

+0

是顯示無法讀取屬性「標籤」的未定義錯誤 – Arjun

+0

是「返回」頻率:「+ d.label +」「;'這條線?你可以發佈一個小提琴嗎? – murli2308

回答