私は D3 に単純な円遷移を持っています。一意の名前を持つ約 23 の異なる円があり、それらはポイント A からポイント B に移動します。.data() のキーとして「円名」を使用しています。
Internet Explorer ではすべて正常に動作しますが、Chrome で試してみると、バブルが正しくマップされません。たとえば、トランジションが実行されると、バブル 1 はバブル 3 の色と "r" になります。最終的な位置は正しく、泡は本来あるべき場所に収まりますが、2 つの点の間ですべて混ざり合っています (塗りつぶしと "r")。
以下のコード:
g.selectAll("circle").data(effedate, function (d) { return d.BubbleName; }).enter().append("circle")
.attr("cx", function (d) { return x_scale(d.PercentageComplete * 100) })
.attr("cy", function (d) { return y_scale(d.GPoS * 100) })
.attr("r", function (d) { return r_scale(d.MSVMMboe) })
.attr("stroke", "black")
.attr("stroke-width", 1)
.attr("opacity", 0.6)
.attr("fill", function (d) {
if (d.FairWay == "A") {
return "steelblue";
}
else if (d.FairWay == "B") {
return "yellow";
}
else if (d.FairWay == "C") {
return "lightgreen";
}
else {
return "lightblue";
}
});
g.selectAll('circle')
.data(effedate).exit().remove();
//transition
g.selectAll("circle").data(effedate2, function (d) { return d.BubbleName; }).transition().duration(3000)
.attr("cx", function (d) { return x_scale(d.PercentageComplete * 100) })
.attr("cy", function (d) { return y_scale(d.GPoS * 100) })
.attr("r", function (d) { return r_scale(d.MSVMMboe) })
.attr("stroke", "black")
.attr("stroke-width", 1)
.attr("opacity", 0.6)
.attr("fill", function (d) {
if (d.FairWay == "A") {
return "steelblue";
}
else if (d.FairWay == "B") {
return "yellow";
}
else if (d.FairWay == "C") {
return "lightgreen";
}
else {
return "lightblue";
}
});
Google Chrome でトランジションに関する問題が発生した人はいますか?