Добавление этого ответа в качестве дополнения к принятому ответу в случае, если у кого-то все еще есть проблемы:
То, что сделало это очень легким для понимания, выглядело здесь
При этом я установил три переменные: шкала
, масштаб ZoomWidth и zoomHeight
- это начальная шкала, на которую вы хотите масштабировать, а затем
zoomWidth и zoomHeight определяются следующим образом:
zoomWidth = (width-scale*width)/2
zoomHeight = (height-scale*height)/2
, где ширина и высота - это ширина и высота элемента «vis» svg
, после этого переводится чтобы быть:
.attr("transform", "translate("+zoomWidth+","+zoomHeight+") scale("+scale+")")
, а также функцией масштабирования:
d3.behavior.zoom().translate([zoomWidth,zoomHeight]).scale(scale)
. Это эффективно гарантирует, что ваш элемент будет масштабироваться и центрироваться при загрузке вашей визуализации.
Дайте мне знать, если это вам поможет! Приветствия.