2012-12-15 3 views
5

in D3, wie kann ich eine Achse in der Mitte oder Mitte eines Graphen setzen? Die documentation sagt "nur oben/unten/links/rechts".d3 Achsenausrichtung: Zentrum

Ich kenne die Dimensionen meines Graphen, sagen wir mal 400px mal 400px. In Protovis verwendet I

vis.add(pv.Rule).bottom(200)

eine Achse 200 Pixel von unten nach oben setzt. Wie kann ich das in D3 machen?

Antwort

4

Sie können die Achsen beliebig transformieren. Die Ausrichtung bezieht sich nur auf die Seite, auf der die Ticks und Zahlen platziert sind.

Siehe z.B. http://alignedleft.com/tutorials/d3/axes/

svg.append("g") 
.attr("class", "axis") 
.attr("transform", "translate(0," + (h - padding) + ")") 
.call(xAxis); 

, wo Sie brauchen nur die Transformation um die Parameter zu ändern, zu bekommen, was Sie wollen.

+1

danke für die Antwort. Eigentlich kam ich von dem Tutorial, das Sie verlinkt haben und habe es hier ausprobiert: http://jsfiddle.net/8DDVN/11/. Diese Geige enthält deinen Code. Ich bin gerade mit D3 gestartet und habe viel vor mir zu lesen und zu verstehen, um von Protovis zu D3 zu wechseln. Würdest du oder jemand so nett sein und die X-Achse nur ein wenig bewegen? Das wäre großartig, danke! – graph

+0

Die allgemeinste Sache, die ich denken kann, ist zu versuchen, die Einstellung zu nehmen "Es ist einfacher und einfacher als Sie denken". Bedenke, dass es bei d3 immer darum geht, Dinge einfach in das DOM des Browsers zu schreiben. – tjltjl

+0

http://jsfiddle.net/gNyyp/ – tjltjl