将文字置于圆圈内。 d3.js

问题描述:

我正在尝试修改代码,并且在我所做的修改中,我无法将文本置于圆圈中间。我已经尝试了很多东西,并且看过几个例子,但它对我不起作用。我该怎么做? 我知道这件事应该完成,我添加一个文本标签,但它不起作用。将文字置于圆圈内。 d3.js

bubbles.enter().append('circle') 
.classed('bubble', true) 
.attr('r', 0) 
.attr('fill', function (d) { return fillColor(d.group); }) 
.attr('stroke', function (d) { return d3.rgb(fillColor(d.group)).darker(); 
}) 
.attr('stroke-width', 2) 
.on('mouseover', function(){}) 
.on('mouseout', function(){}); 

http://plnkr.co/edit/2BCVxQ5n07Rd9GYIOz1c?p=preview

+0

https://stackoverflow.com/questions/13615381/d3-add-text-to-circle – bryce

+0

@brycedorn我试过了,但没有成功... http://plnkr.co/edit/2BCVxQ5n07Rd9GYIOz1c?p =预览 – yavg

的文本创建另一个选择:

var bubblesText = svg.selectAll('.bubbleText') 
    .data(nodes, function(d) { 
     return d.id; 
    }); 

bubblesText.enter().append('text') 
    .attr("text-anchor", "middle") 
    .classed('bubble', true) 
    .text(function(d) { 
     return d.name 
    }) 

并将其移动蜱函数内。

这里是更新plunker:http://plnkr.co/edit/UgDjqNhzbvukTWU6J9Oy?p=preview

PS:这是一个非常通用的答案,只是显示你如何显示文本。这个答案不涉及细节,如大小或转换,这些超出了问题的范围,而且您必须实施自己。

+0

太好了,我有个问题,这条线的用途是什么?另一件我想知道的是如何为小圈子添加一定大小的文字。 (会很好的计算出它们不超过圆的大小,从而确定合适的大小..)manyisimas谢谢。你是拉丁语? – yavg

+0

正如我在我的文章中告诉你的,这些是不同的问题,如果你发布关于文本大小的不同问题,这是一个更好的主意。关于这条线,你没有告诉我你在说什么(如果你的意思是“拉丁裔”,是的,我是)。 –

+0

我忘了告诉你什么路线,我会说西班牙语,在即将到来的场合,我们能否用我们的母语来了解彼此?我用英语不太好。bubblesText = svg.selectAll('。bubbleText') .data(nodes,function(d){return d.id;}); – yavg