首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对d3.js中的选择进行排序会干扰数据连接

对d3.js中的选择进行排序会干扰数据连接
EN

Stack Overflow用户
提问于 2012-07-16 07:07:31
回答 1查看 5.4K关注 0票数 10

当我使用selection.sort()对d3中的路径选择进行重新排序时,数据连接会受到干扰,我的路径会被重新分配给错误的数据对象。

我只想对路径进行重新排序,以便一些路径最终位于其他路径之上(如z-index)。我不想将数据对象从一条路径重新分配到另一条路径。

如何在不干扰数据连接的情况下对路径进行重新排序?

代码语言:javascript
复制
_friends.selectAll('path').sort(function(a, b){
  return d3.ascending(a.Q, b.Q);
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-16 18:32:47

听起来您需要指定一个 function。这允许您通过任意键绑定数据,而不是依赖于默认设置,即使用数据在数组中的位置,即顺序(在您的情况下,顺序可能会改变)。

如果您还没有为每个数据提供唯一的键,则始终可以在加载时生成它们:

代码语言:javascript
复制
var id = 0;
for (var i = 0; i < data.length; i++) data[i].id = id++;

如果您创建了任何新数据,您可以继续递增id以获得一个新的、惟一的ID。

然后,对于数据绑定,您可以这样做:

代码语言:javascript
复制
.data(data, function(d) { return d.id; })
票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11496393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档