使用d3.js图表​​的TootTip问题

时间:2016-03-21 05:03:04

标签: d3.js

我想在我的d3图表中添加toottip,但我无法这样做..任何帮助都会受到赞赏..

程序代码:

    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;
    }
            );

1 个答案:

答案 0 :(得分:2)

你必须在svg上打电话给小费。你缺少以下代码。

int

检查文档https://github.com/Caged/d3-tip