これは一部の人にとっては些細かもしれませんが、私はD3JSの初心者です。D3JS振動気泡
私は、配列に対して不透明度が変化する2つの静的なバブルをプロットしようとしています。私は気泡をプロットすることができますが、不透明度を連続的に変更することはできません。 transition
とdelay
を使用しています。不透明度は1回しか変更できません。ここに私のコードサンプル
(function() {
var dropsize = 100;
var gapsize = 20;
var osc = [[1, 1],[0.5, 0.5],[0, 0],[0.5, 0.5],[1, 1],[0.5, 0.5],[0, 0],[0.5, 0.5]];
var radius = dropsize/2;
var h = 100;
var w = (4 * radius + 3 * gapsize);
var svg = d3.select("#chart").append("svg");
var svg = d3.select("body")
.append("svg")
.attr("width", w)
.attr("height", h)
.style("background-color", "teal");
var circles = svg.selectAll("circle")
.data([radius, 3 * radius])
.enter()
.append("circle");
circles.attr("cx", function(d, i) {
return d + (i + 1) * gapsize;
})
.attr("cy", h/2)
.attr("r", function(d, i) {
return radius;
})
.attr("fill", "orange")
.attr("class", "droplet")
.attr("id", function(d, i) {
return "c_" + (i + 1);
});
d3.select("#c_1")
.data(osc)
.transition().delay(function(d, i) {
return i * 1000;
})
.duration(1000)
.attr("opacity", function(d) {
return d[0]
});
})();
で継続的にあなたが移行を繰り返すと対照的に、次の1つの不透明状態からすぐに切り替えるのではなく、スムーズに移行を意味し、私はによって仮定ペンBubble Chart with D3.js using Realtime Data
これはうまくいきます。ありがとう@ジェラルド・ファルタド。 2つの泡は、異なる不透明度で振動することができなければならない。だから1つのペアには、それぞれのバブルの不透明度が含まれています – kthouz
これはもっと理にかなっています!私のコードでは、データ配列の2つの値は不透明度の2つの振動値です。 –
はい、それを得ました。しかし、将来のアプリケーションのために、私は 'setInterval'を次のように使用することにしました。 ' tic = new Date(); setInterval(function(){ dt = Math.round((New Date() - tic)/ 50)%osc.length; d3.select( "#c_1")。transition()。duration(100)。 ( "opacity"、function());d3.select( "#c_2")。transition()。duration(100).style( "opacity"、function() {return osc [dt] [1]}); } ' – kthouz