d3.js 更新D3v7和弦布局

w41d8nur  于 2022-11-12  发布在  其他
关注(0)|答案(1)|浏览(222)

最近我在尝试理解D3弦图,特别是D3v7。我得到了两个不同的数据集,并希望动态更新这些数据集。一般来说,它在两个问题旁边工作:
1.每个数据集中的第一个对象将被忽略。我不知道为什么任何console.log显示了现有的数据,但它只是没有被绘制。例如,基于groups1和paths1的数据集1缺少对象A,而在dataset2中缺少对象E。
1.一旦更新了图表,旧的元素仍然存在,图表会创建新的路径,而不会删除旧的。每次单击和更改都会增加浏览器中的D3元素,而不是替换它们。
由于D3v3和D3v7有点变化,我不能很快弄清楚,以帮助自己.
第一个

doinxwow

doinxwow1#

问题1通过以下方式解决:

let g = wrapper.selectAll("g.group") // add class of 'group' to the selector

因为您已经在前面的语句中将g添加到了wrapper,所以选择的内容有些不明确:let ribbons = wrapper.append("g");
问题2似乎更复杂一些。
首先,每次调用update时,都会在svg下创建一个新的g,并将其赋值给wrapper
第二,update同时使用chordchords,前者在update之外更新,后者在update之内更新。
第三,您可以为外部的每个弧、带和标签设置一个g,然后进入、更新和退出逻辑对它们内部的pathtext元素起作用。
在下面的工作示例中,我简化了一些其他的小细节:
第一个

相关问题