使用种子值保持刷新之间的d3-cloud一致?

时间:2017-03-22 01:56:21

标签: javascript jquery d3.js word-cloud tag-cloud

有没有办法将种子值传递给d3-cloud或其他基于javascript的标签云,以便在页面加载之间保持一致?

我们的客户希望使用标签云作为导航/发现辅助工具,但由于d3-cloud每次降低其有用性时都会随机化放置。

如果输入相同,是否有办法传递种子值或修改云以使其看起来相同?我不需要轮换,名称和大小将(大部分时间)恒定和预定。

我可以将它的表示保存到localstorage但是当Jenny在她的平板电脑上查看它或者去帮助Jane时它会不一致

任何人都可以就如何创建持久状态词云提出任何建议吗?

1 个答案:

答案 0 :(得分:3)

我们找到了一个修复:)

设置随机返回1以不随机化单词的初始位置

var layout = cloud()
    .size([1500, 475])
    .words(sitesList.map(function(d) {
      return {text: d, size: 10, test: "haha"};
    }))
    .padding(5)
    .rotate(function() { return ~~(Math.random() * 1) * 90; })
    .font("Impact")
    .fontSize(function(d) { return d.size; })
    .random(function(d) { return 1; })
    .on("end", draw);

编辑:经过进一步的实验,它看起来更好地返回0.5,这似乎是将中心的单词组合在一起。较高的数字似乎将其推到右下角