簡體   English   中英

selectAll()之后的D3 filter()

[英]D3 filter() after a selectAll()

我試圖了解美麗的庫D3。 真的–我不明白以下幾行為什么不起作用。 該代碼應僅以特殊顏色填充少數幾個圓。

<svg>
<g id="row_1"> ... </g>
<g id="row_1"> ... </g>
<g id="row_3"> ... </g>
    <circle cx="16.887" cy="333.923" r="6.268"/>
    <circle cx="33.574" cy="333.923" r="6.268"/>
    <circle cx="50.262" cy="333.923" r="6.268"/>
    <circle cx="66.949" cy="333.923" r="6.268"/>
    <circle cx="167.074" cy="333.923" r="6.268"/>
    <circle cx="183.762" cy="333.923" r="6.268"/>
    <circle cx="333.387" cy="333.923" r="6.268"/>
    <circle cx="316.699" cy="333.923" r="6.268"/>
    <circle cx="300.199" cy="334.101" r="6.268"/>
    <circle cx="266.637" cy="333.923" r="6.268"/>
    <circle cx="250.137" cy="333.923" r="6.268"/>
    <circle cx="216.762" cy="333.923" r="6.268"/>
</g>
</svg>


<script>
var i;
var identifierID;
var svg = d3.select("svg");  

for (i=0; i<=20; i++){
   identifierID = "#row_"+i;
   svg.select(identifierID).selectAll("circle")
   .filter(function(d){ return d == 12; }).style("fill","blue") *//the value 12 is a example*
}
</script>

代碼看起來像(圓=°)

°°°°°°°°°°°°(°)<特殊顏色

°°°°°°°°°°°°(°)<特殊顏色

°°°°°°°°°°°°(°)<特殊顏色

但是它不能與功能過濾器一起使用(畢竟沒有它會^^)。 如果有人可以幫助我,那就太好了! 問候

您傳遞給過濾器的每個“ d”對象都擁有該圓的所有屬性。 如果要對特定索引進行過濾,則可以傳遞兩個參數以進行過濾:

.filter(function(d, i) // i is the index
    return i === 12;
});

如果要過濾d的屬性,則需要使用點表示法或方括號表示法對其進行訪問。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM