2016-07-15 11 views
46

Próbuję nauczyć się d3 w książce Interactive Web Visualization, ale wiele zmieniło się w wersji 4.0. Jedną z rzeczy, których naprawdę nie mogę zrozumieć jest to, że istnieje odpowiednik d3.scale.category10(), aby uzyskać łatwe odwzorowanie kolorów. Czy jest coś takiego w nowej wersji lub czy musimy używać math.random i samemu coś koduować?Co to jest odpowiednik d3.js w wersji 4.0 dla d3.scale.category10()?

Odpowiedz

75

Zamiast

d3.scale.category10() 

użycie

d3.scaleOrdinal(d3.schemeCategory10); 

Tworzenie skalę kolorów tak:

var color = d3.scaleOrdinal(d3.schemeCategory10); 

używać koloru jak to w kodzie samej jak w V3:

svg.append("rect") 
.attr("x", 10) 
.attr("y", 10) 
.attr("width", 100) 
.attr("height", 100) 
.style("fill", color(3)) 

czytać here

Reference here

kod roboczych here

+1

Dzięki! Właśnie przewijałem dokument zmian i w końcu znalazłem wyjaśnienie. – anonygrits

+0

Bez względu na to, jaki numer podajesz do 'color()', w twoim działającym kodzie wynik jest zawsze niebieski i pomarańczowy - czy to oczekiwane zachowanie? Co jeśli chcę fioletowy? – 24ma13wg

+0

To wydaje się być rozwiązaniem tego, czego się spodziewałem: 'color = d3.scaleOrdinal (d3.schemeCategory10) .domena (d3.range (0, 9));' – 24ma13wg