d3.js zoom xScale / xAxis

Je suis en train de créer un graphique simple qui permet une capacité de zoom et les exemples que j'ai trouvé jusqu'à présent de générer les axes et les tiques manuellement: http://bl.ocks.org/1182434

Ce que j'ai utilisé, cependant, est intégré dans l'axe de l'objet et je ne sais pas comment traduire l'échelle pour arriver au travail - des idées?

var xScale = d3.scale.linear().
domain([0, 80]). //your data minimum and maximum
range([0, width]); //the pixels to map to, e.g., the width of the diagram.
var yScale = d3.scale.linear().
domain([100, 0]). 
range([0, height]); 
var xAxis = d3.svg.axis().orient("bottom").scale(xScale).ticks(10, d3.format(",d")),
yAxis = d3.svg.axis().orient("left").scale(yScale);
var chart = d3.select("#chart").append("svg")
.attr("class", "chart")
.attr("width", width + margin.left + margin.right)
.attr("height", height + margin.top + margin.bottom)
.attr("pointer-events", "all")
.append("g")
.attr("transform", "translate(" + margin.left + "," + margin.top + ")")
.call(d3.behavior.zoom().on("zoom", redraw))
.append("g")
chart.append('svg:rect')
.attr('width', width)
.attr('height', height)
.attr('fill', 'white');
//x-axis
var xaxis = chart.append("g")
.attr("class", "x axis")
.attr("transform", "translate(0," + height + ")")
.call(xAxis);
//y-axis
var yaxis = chart.append("g")
.attr("class", "y axis")
.call(yAxis);
//omitted code to draw the path, it's just a path object that uses a line and passes data to it
function redraw() 
{
console.log("here", d3.event.translate, d3.event.scale);
path.attr("transform", "translate(" + d3.event.translate + ")" + " scale(" + d3.event.scale + ")");
//d3.event.transform(xScale, yScale);
//HERE is where I need to figure out how to scale the x and y axes!    
xAxis.scale(xScale);
yAxis.scale(yScale);
xaxis.call(xAxis);
yaxis.call(yAxis);
}

OriginalL'auteur Victor Parmar | 2012-05-03