У меня есть график с использованием силовой компоновки, но он имеет фиксированную ширину w
и height h
:
var svg = d3.select("#viz").append("svg")
.attr("id", "playgraph")
.attr("width", w)
.attr("height", h)
var force = d3.layout.force()
.nodes(nodes)
.links(links)
.charge(-1600)
.linkDistance(45)
.size([w, h]);
что приводит к тому, что график svg не масштабируется и не уменьшается, несмотря на изменения размера экрана или окна браузера. Чтобы сделать его отзывчивым (т.е. Автоматически меняет размеры), я попытался использовать атрибуты viewBox
и preserveAspectRatio
:
var svg = d3.select("#viz").append("svg")
.attr("id", "playgraph")
.attr("width", w)
.attr("height", h)
.attr("viewBox", "0, 0, 600, 400")
.attr("preserveAspectRatio", "xMidYMid meet");
К сожалению, это не сработало, поскольку ничего не происходит, когда я изменяю размер окна браузера. Интересно, имеет ли значение .size([w, h])
диаграммы сил это.
Прошу прояснить, как использовать атрибуты viewBox
и preserveAspectRatio
с графиками компоновки силы.