我正在尝试使用d3.js创建一个单词/标签云,其中y轴由数据变量控制,而不是像普通单词/标签云中那样随机放置。所以我不介意文本放在xaxis上的位置,但我确实希望控制它在yaxis上的位置。
我的方法是为每个数据片段添加一个文本元素,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
此方法失败,因为在附加完成之前,我似乎无法访问任何先前的元素。
有关更好方法的建议或在附加期间访问元素的方法吗?
答案 0 :(得分:0)
在这里,Jason Davies提供了一个很好的词云实现,其中包含了您想做的任何自定义:http://www.jasondavies.com/wordcloud/#http%3A%2F%2Fsearch.twitter.com%2Fsearch.json%3Frpp%3D100%26q%3D%7Bword%7D=cloud