2013-07-24 14 views
5

Chciałbym wybrać podzbiór danych za pomocą .select() lub .selectAll().D3: Nie można wybrać podzestawu mojego zestawu danych.

Na przykład, mam zestaw danych:

var dataset = [4,5,6,7,9,56] 

Każdy numer zbioru danych jest związany z SVG <rect>:

svg.selectAll("rect") 
    .data(dataset) 
    .enter() 
    .append("rect"); 

Teraz chciałbym wybrać tylko podzbiór danych dla nałożenie na nią pewnych rzeczy (w moim przypadku kolorowanie na żółto).

Działa to do barwienia każdy<rect>:

var allRect = myselection.selectAll("rect") 
    .attr("fill","rgb(255, 255, 0)"); 

Ale chciałbym, aby wybrać, na przykład, tylko <rect> s, co odpowiada liczbie od 5 do 7. lub przynajmniej <rect> odpowiadającej do określonego numeru z mojego zbioru danych.

Próbowałem:

var specificRect = myselection.selectAll("rect")[5:9] 

var specificRect = myselection.selectAll("rect")[5] 

var specificRect = myselection.selectAll("rect")[2,3,4] 

var specificRect = myselection.selectAll("rect").data(dataset)[1] 

Żaden z nich pracują. Dzięki za pomoc.

+3

Możesz zamieścić odpowiedź na swoje własne pytanie i zaakceptować to. –

Odpowiedz

3

Rozwiązaniem było użycie ".filter".

var specificRect = myselection.selectAll("rect").data(dataset) 
.filter(function(d) { return (d >= 5 && d <= 9) }) 
Powiązane problemy