Я использую эту красивую силовую схему от Flowingdata.com для создания сетевой диаграммы.
В моей диаграмме в настоящее время отображается от 5 до 750 узлов с их отношениями. Он отлично работает с некоторыми пользовательскими изменениями, соответствующими моим потребностям. Как бы то ни было, я не могу работать. У меня есть viewBox
с preserveAspectRatio
для автоматической установки контейнера, в котором он находится. Но в зависимости от количества узлов всегда есть некоторые узлы вокруг краев (главным образом верх и buttom), которые обрезаются. И если узлов очень мало, они показывают их посередине с огромным пустым пространством вокруг него (это большой контейнер в нем).
Есть ли способ автоматического масштабирования или масштабирования макета для автоматической установки? Так что большой макет несколько уменьшился, а малый макет увеличился. У меня есть настройка события масштабирования, поэтому прокрутка и панорамирование работают как шарм. Но может ли он автоматически сделать это, чтобы соответствовать содержимому?
Код запуска d3.js:
vis = d3.select(selection)
.append("svg")
.attr("viewBox", "0 0 " + width + " " + height )
.attr("preserveAspectRatio", "xMidYMid meet")
.attr("pointer-events", "all")
.call(d3.behavior.zoom().scaleExtent([.1, 3])
.on("zoom", redraw)).append('g');