Javascript 在酒窝气泡图中显示每个气泡内的标签

Javascript 在酒窝气泡图中显示每个气泡内的标签,javascript,d3.js,data-visualization,dimple.js,Javascript,D3.js,Data Visualization,Dimple.js,我正在用酒窝制作气泡图。那部分已经完成了。我还想将所有者名称(气泡标签)添加到气泡内,而不仅仅是作为图表外的列表,但这不起作用。我该怎么做 看看您的JSFIDLE,有一个注释块接近正确答案,但是您遗漏了一些东西。首先,圆使用cx和cy属性,而不是x和y属性,因此需要参考这些属性来确定位置。其次,在draw方法之前调用s.shapes.each,并且该系列的shapes属性仅在draw之后填充。您可以在draw方法之后移动块,但我已将其切换为使用series.afterDraw属性: s.aft

我正在用酒窝制作气泡图。那部分已经完成了。我还想将所有者名称(气泡标签)添加到气泡内,而不仅仅是作为图表外的列表,但这不起作用。我该怎么做


看看您的JSFIDLE,有一个注释块接近正确答案,但是您遗漏了一些东西。首先,圆使用cx和cy属性,而不是x和y属性,因此需要参考这些属性来确定位置。其次,在draw方法之前调用s.shapes.each,并且该系列的shapes属性仅在draw之后填充。您可以在draw方法之后移动块,但我已将其切换为使用series.afterDraw属性:

s.afterDraw = function (shp, d) {
    var shape = d3.select(shp);
    svg.append("text")
        .attr("x", parseFloat(shape.attr("cx")))
        .attr("y", parseFloat(shape.attr("cy")) + 4)
        .style("text-anchor", "middle")
        .style("font-size", "10px")
        .style("font-family", "sans-serif")
        .style("opacity", 0.7)
        .text(d.zValue);
};

您更新的小提琴在这里:

注意,这个答案要求您升级到dimple.js。另外,这里还有一个提示,用于在气泡中显示“所有者”而不是“大小”。谢谢John和Mark!还有一件事,我如何找到气泡的半径,因为我想把文本放在气泡外面,以防气泡比文本小。。。
s.afterDraw = function (shp, d) {
    var shape = d3.select(shp);
    svg.append("text")
        .attr("x", parseFloat(shape.attr("cx")))
        .attr("y", parseFloat(shape.attr("cy")) + 4)
        .style("text-anchor", "middle")
        .style("font-size", "10px")
        .style("font-family", "sans-serif")
        .style("opacity", 0.7)
        .text(d.zValue);
};