Javascript 调整大小事件中的d3.js缩放圆环图

Javascript 调整大小事件中的d3.js缩放圆环图,javascript,d3.js,data-visualization,Javascript,D3.js,Data Visualization,我画了一张与窗口宽度成二维关系的图表: var width = (window.innerWidth < 1280) ? 400 : 600, height = (window.innerWidth < 1280) ? 400 : 500, radius = Math.min(width, height) / 2; var arc = d3.svg.arc().innerRadius(radius).outerRadius(radius - 10), arcFinal = d3.s

我画了一张与窗口宽度成二维关系的图表:

var width = (window.innerWidth < 1280) ? 400 : 600,
height = (window.innerWidth < 1280) ? 400 : 500,
radius = Math.min(width, height) / 2;

var arc = d3.svg.arc().innerRadius(radius).outerRadius(radius - 10),
arcFinal = d3.svg.arc().innerRadius(radius - 100).outerRadius(radius - 10),
arcHover = d3.svg.arc().innerRadius(radius - 100).outerRadius(radius);

var svg = d3.select("#chart").append("svg")
.attr("width", width)
.attr("height", height)
.append("g")
.attr("id", "pie")
.attr("transform", "translate(" + width / 2 + "," + height / 2 + ")");}
var-width=(window.innerWidth<1280)?400 : 600,
高度=(window.innerWidth<1280)?400 : 500,
半径=数学最小值(宽度、高度)/2;
var arc=d3.svg.arc().innerRadius(半径).outerRadius(半径-10),
arcFinal=d3.svg.arc().内半径(半径-100).外半径(半径-10),
arcHover=d3.svg.arc().innerRadius(半径-100)、outerRadius(半径);
var svg=d3.选择(“图表”).追加(“svg”)
.attr(“宽度”,宽度)
.attr(“高度”,高度)
.附加(“g”)
.attr(“id”、“pie”)
.attr(“变换”、“平移”(“+width/2+”,“+height/2+”);}
在调整大小事件中更新此函数的最佳方法是什么?

好的,我通过添加以下内容修复了此问题:

...
var svg = d3.select("#chart").append("svg")
.attr("width", width)
.attr("height", height)
.attr("viewBox", "0, 0, " + width + ", " + height)
.attr("preserveAspectRatio", "xMinYMin")
...
然后我更新了调整大小事件的宽度和高度

确定,我通过添加以下内容进行了修复:

...
var svg = d3.select("#chart").append("svg")
.attr("width", width)
.attr("height", height)
.attr("viewBox", "0, 0, " + width + ", " + height)
.attr("preserveAspectRatio", "xMinYMin")
...
然后,我在resize事件中更新了宽度和高度