2013-03-01 22 views
12

Próbuję zrobić wykres oparty na http://mbostock.github.com/d3/talk/20111116/bar-hierarchy.html, z tą różnicą, że chciałbym użyć skali logarytmicznej dla osi X.Użyj skali logarytmicznej d3 zamiast skali liniowej

Oto moje skrzypce: http://jsfiddle.net/JhDVC/5/

Jak widać, oś x jest zdefiniowana w wierszu 4:

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

Gdybym go zmienić na

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

Wtedy nie robi Działają (nic nie jest renderowane), generując następujące komunikaty o błędach:

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

Zmiana ustawienia domeny z

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

do

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

pokazuje mi osi Z (nazwy), ale nadal nie ma barów lub wartości.

Odpowiedz

8

Istnieje kilka innych miejsc, w których ustawiono domenę dla wagi. Musisz je również zaktualizować.

Praca jsfiddle here.

A oto niektóre kodu tak, że pozwala mi pisać tak:

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

[Zweryfikowano tutaj] (http://jsfiddle.net/amullins/grQmf/1/). –

+0

#facepalm. Dzięki! :) – luisfarzati

1

Twoja oferta obejmuje zera - log (0) jest niezdefiniowane.

Powiązane problemy