【发布时间】:2018-04-10 03:51:28
【问题描述】:
我有一个气泡图,我在其中按以下方式制作气泡:
var circles = svg.selectAll(null)
.data(data)
.enter()
.append("circle")
.attr("cx", width / 2)
.attr("cy", height / 2)
.attr("opacity", 0.3)
.attr("r", 20)
.style("fill", function(d){
if(+d.student_percentile <= 40){
return "red";
}
else if(+d.student_percentile > 40 && +d.student_percentile <= 70){
return "yellow";
}
else{
return "green";
}
})
.attr("cx", function(d) {
return xscale(+d.student_percentile);
})
.attr("cy", function(d) {
return yscale(+d.rank);
})
.on('mouseover', function(d, i) {
d3.select(this)
.transition()
.duration(1000)
.ease(d3.easeBounce)
.attr("r", 32)
.style("fill", "orange")
.style("cursor", "pointer")
.attr("text-anchor", "middle");
texts.filter(function(e) {
return +e.rank === +d.rank;
})
.attr("font-size", "20px");
}
)
.on('mouseout', function(d, i) {
d3.select(this).transition()
.style("opacity", 0.3)
.attr("r", 20)
.style("fill", "blue")
.style("cursor", "default");
texts.filter(function(e) {
return e.rank === d.rank;
})
.transition()
.duration(1000)
.ease(d3.easeBounce)
.attr("font-size", "10px")
});
我根据学生的百分位数为气泡赋予了红色、黄色、绿色的颜色。在鼠标悬停时,我将气泡的颜色更改为“橙色”。现在的问题是,在鼠标悬停时,目前我正在将气泡的颜色设置为“蓝色”,但我想为它们分配与鼠标悬停之前相同的颜色,即红色/绿色/黄色。我如何找出气泡是什么颜色的? 一种方法是显然检查学生的百分位数,然后根据它给出颜色(就像我最初指定的绿色/黄色/红色一样),但是有没有直接的方法可以找到气泡的实际颜色? 提前致谢!
【问题讨论】:
标签: javascript d3.js