2013-07-24 30 views
5

Tôi muốn chọn một tập hợp con dữ liệu với .select() hoặc .selectAll().D3: Không thể chọn tập hợp con của tập dữ liệu của tôi

Ví dụ, tôi có một tập dữ liệu:

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

Mỗi số của tập dữ liệu này được liên kết với một SVG <rect>:

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

Bây giờ tôi muốn chỉ chọn một tập hợp con của dữ liệu cho áp dụng một số thứ trên đó (tô màu vàng trong trường hợp của tôi).

này làm việc cho màu mỗi các <rect>:

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

Nhưng tôi muốn lựa chọn, ví dụ, chỉ có <rect> s tương ứng với một số từ 5 đến 7. Hoặc ít nhất là <rect> tương ứng đến một số cụ thể từ tập dữ liệu của tôi.

tôi đã cố gắng:

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] 

Không ai trong số những người đang làm việc. Cảm ơn bạn đã giúp đỡ.

+3

Bạn có thể đăng câu trả lời cho câu hỏi của riêng mình và chấp nhận câu hỏi đó. –

Trả lời

3

Giải pháp là sử dụng ".filter".

var specificRect = myselection.selectAll("rect").data(dataset) 
.filter(function(d) { return (d >= 5 && d <= 9) }) 
Các vấn đề liên quan