2013-07-24 3 views
5

Я хотел бы выбрать подмножество данных с помощью .select() или .selectAll().D3: Невозможно выбрать подмножество моего набора данных

К примеру, у меня есть набор данных:

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

Каждый номер этого набора данных, связанного с SVG <rect>:

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

Теперь я хотел бы выбрать только подмножество данных для применяя некоторые вещи на нем (окраска в желтый цвет в моем случае).

Это работает для окрашивания каждый<rect>:

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

Но я хотел бы, чтобы выбрать, например, только <rect> s, соответствующее число между 5 и 7 или по крайней мере <rect> соответствующего к определенному числу из моего набора данных.

Я пробовал:

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] 

Ни один из них не работают. Спасибо за вашу помощь.

+3

Вы можете отправить ответ на свой вопрос и принять это. –

ответ

3

Решение было использование «.filter».

var specificRect = myselection.selectAll("rect").data(dataset) 
.filter(function(d) { return (d >= 5 && d <= 9) }) 
Смежные вопросы