0

我正在尝试使用 d3.js 创建一个词/标签云,其中 y 轴由数据变量控制,而不是像普通词/标签云中的随机放置。所以我不介意文本在 x 轴上的位置,但我确实想要控制它在 y 轴上的位置。

我的方法是使用 x 属性函数为每条数据添加一个文本元素:

.attr("x", function(d,i) {
    loop 10 times
        generate random x
        loop through previous added element <i to check for collision
        no collision exit loop
    if (collision) set x to somewhere off the image

此方法失败,因为在追加完成之前我似乎无法访问任何先前的元素。

对执行此操作的更好方法或在附加期间访问元素的方法有什么建议吗?

4

1 回答 1

0

在这里,您有 Jason Davies 的一个很好的词云实现,其中几乎包含您想要进行的任何自定义:http://www.jasondavies.com/wordcloud/#http%3A%2F%2Fsearch.twitter.com%2Fsearch。 json%3Frpp%3D100%26q%3D%7Bword%7D=云

于 2012-09-13T12:43:20.943 回答