2017-05-31 80 views
3

我正在使用Mike Bostock的彩虹蟲作爲我的項目的一部分。 https://bl.ocks.org/mbostock/4165404更改彩虹蟲的顏色

我試圖改變蠕蟲的顏色,因爲它會在項目代表風速。着色描述了這個功能:

var path = svg.selectAll("path") 
.data(quad(points)) 
.enter().append("path") 
.style("fill", function(d) { return d3.hsl(z(d[1].value), 1, .5); }) 
.style("stroke", "#000"); 

如果我用「顏色」替換函數(d),蠕蟲將會是單色的。 我怎樣才能讓蠕蟲部分顏色爲紅色 - >白色 - >紅色 - >白色 - >紅色 - >白色等等?

回答

2

使用索引(第二個參數)和remainder operator

.style("fill", function(d,i) { return i%2 ? "red" : "white" }) 

這就是這個片段做:

第二個參數,這裏命名i,是每個數據的指數 ,從0到data.length - 1

然後,利用其餘操作...

i % 2 

...我們會得到一系列的零和一的:

010101010101010101... 

正如在JavaScript(和所有的語言我意識到)0是虛假的,高等運營商會交替返回「白色」和「紅色」。

這裏是bl.ocks:http://bl.ocks.org/anonymous/fd5c1e6644d742e43c737ff4a17f96ff