2013-03-01 6 views
12

Ich versuche, ein Diagramm basierend auf http://mbostock.github.com/d3/talk/20111116/bar-hierarchy.html zu tun, der einzige Unterschied ist, dass ich eine logarithmische Skala für die X-Achse verwenden möchte.Verwenden Sie d3 Log-Skala anstelle der linearen Skala

Hier ist meine Geige: http://jsfiddle.net/JhDVC/5/

Wie Sie an der Linie definiert sehen können, ist die x-Achse 4:

x = d3.scale.linear().range([0, w]), 

Wenn ich es für

ändern
x = d3.scale.log().range([0, w]), 

Dann doesn funktioniert nicht (es wird nichts gerendert), wobei folgende Fehlermeldungen ausgegeben werden:

Error: Invalid value for <rect> attribute width="NaN" 

Ändern der Domäneneinstellung von

x.domain([0, root.value]).nice(); 

zu

x.domain([1, root.value]).nice(); 

zeigt mir die z-Achse (Namen), aber immer noch keine Bars oder Werte.

Antwort

8

Es gibt ein paar andere Orte, wo die Domäne für die Skala festgelegt ist. Sie müssen diese auch aktualisieren.

Arbeiten jsfiddle here.

Und hier ist ein Code, so dass es mich zu diesem Post erlaubt:

x.domain([1, root.value]).nice(); 
+2

[hier überprüft] (http://jsfiddle.net/amullins/grQmf/1/). –

+0

#facepalm. Vielen Dank! :) – luisfarzati

1

Ihr Angebot umfasst Null - log (0) nicht definiert ist.