2016-08-18 1 views
5

Ich habe die d3 Zeitachse erstellt,Was macht zoom.scaleExtent() in d3.js?

//minDate and maxDates are javascript date object. 
var timeScale =d3.scaleTime().domain([minDate,maxDate]).range(
       [0, width]); 
var timeAxis = d3.axisBottom(timeScale); 

und ich habe die Zoom-Interaktion zu dieser Achse

//gX is group div that has timeAxis. 
gX.call(d3.zoom(timeScale).scaleExtent([0,4]).on("zoom",function(d){ 
    //Do something. 
})) 

aber zunächst ich die Zoomstufe der Achse in Tag-Ebene gesetzt werden soll hinzugefügt, Standard ist es in Stunden-Ebene, So endlich, was ich bin neugierig ist,

  1. Wie die Zoomgrenze zwischen Jahren und Min Zoomstufe auf Tag zu begrenzen?
  2. Was bedeutet die Zahl [0,4] in scaleExtent ([0,4]) beim Zoomen?
+0

Viel Glück! D3 scheint sich selbst ein Rätsel zu sein. Leider ist die gesamte Dokumentation von Mike Bostock (großer Programmierer, wie er ist, er ist absolut furchtbar darin, Dinge auf eine einfache und direkte Art zu erklären) ziemlich nutzlos für jeden, der nicht bereit ist, mindestens einen Monat damit zu verbringen, zu lernen Erstellen Sie ein einfaches Liniendiagramm. Leistungsstarke Bibliothek, aber die meisten Menschen sind einfach darauf beschränkt, den Code von Mikes zu kopieren und zu optimieren, um das zu tun, was sie wollen - ohne den Code, mit dem sie enden, zu verstehen. Wünschte, es gäbe eine Alternative mit einer flacheren Lernkurve, würde D3 entleeren! –

Antwort

0

Von was ich verstehe ist es der Faktor Zeit des Zooms. 4 wäre gemein: viermal vergrößert.