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
Vous devez vous connecter pour publier un commentaire.
Bien c'est comment j'ai fini par le faire dans le cas où personne n'était intéressé:
Noter que j'ai également eu à régler l'échelle de la limite:
OriginalL'auteur Victor Parmar
Vous pouvez consulter un tableau que j'ai fait qui inclut des fonctionnalités de zoom à l'aide d'un graphique séparé, la même chose serait de travailler pour zoomer sur le graphique. La charte est disponible à http://bl.ocks.org/1962173.
Voici la façon dont je le zoom:
Tout le code est disponible sur le lien que j'ai fourni ci-dessus.
OriginalL'auteur Bill
vous pouvez Ajouter votre graphique avec la sensibilité d'événements (doit être le dernier ajout) :
APRÈS (ne pas inclure) ajouter la gestion de l'événement sur cette zone
ajouter une fonction de dessin comme
voir cet exemple : https://groups.google.com/forum/?fromgroups=#!topic/d3-js/6p7Lbnz-jRQ%5B1-25-faux%5D
OriginalL'auteur Alban