我正在尝试修改 d3 sankey 图表的宽度,因此我可以将扩展内容(有关节点的详细信息)放入调整大小创建的空间中。所以用户点击节点,图表缩小到它的一半宽度,我可以将内容附加到新空间......
问题是,d3 sankey 布局会影响许多其他元素,我不确定如何使 sankey 更改渗透到所有元素中。
定义布局后:
var sankey = d3.sankey()
.nodeWidth(15)
.nodePadding(10)
.size([width, height]);
然后根据数据构建布局
sankey
.nodes(data.nodes)
.links(data.links)
.layout(32);
我试图通过更新布局
d3.selectAll(".node")
.on("click",function(d){
sankey.size([width/2, height])
})
这显然是行不通的。不知道如何将其推回元素!
Plunker 展示全图:http ://plnkr.co/edit/udEOog?p=preview