J'ai un graphique à l'aide de la force de mise en page, mais il a une largeur fixe w
et la hauteur 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]);
les résultats dans un graphique svg qui n'est pas à l'échelle ou à la baisse en dépit de changements dans l'écran du navigateur ou la taille de la fenêtre. Afin de le rendre réceptif (c'est à dire redimensionne automatiquement lui-même), j'ai essayé d'utiliser viewBox
et preserveAspectRatio
attributs:
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");
Malheureusement, cela n'a pas fonctionné comme il ne se passe rien lorsque j'ajuster la taille de la fenêtre du navigateur. Je me demande si l' .size([w, h])
de la force graphique a rien à voir avec cela.
Veuillez jeter une certaine lumière sur la façon d'utiliser viewBox
et preserveAspectRatio
les attributs de la force de mise en page des graphiques.