Я пытаюсь изменить ширину диаграммы dank sankey, поэтому я могу поместить расширенный контент (подробности об узле) в пространство, созданное изменением размера. Так что пользователь нажимает на узел, диаграмма сокращается до половины его ширины, и я могу добавить содержимое в новое пространство ...Динамическое изменение ширины диаграммы d3.js sankey
Дело в том, что макет d3 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
Вы повторный ввод данных с помощью ввода(), метод выхода()? Это ключ. –