我希望能够在两种颜色之间进行插值,并根据给定的数字生成一个包含这些插值颜色的数组。
我发现D3有一个名为d3.interpolate()
的方法,但我不知道如何使用它。
如何使用D3插值器来生成一个颜色数组,需要指定要插值的两种颜色以及所需插值颜色的数量?
我希望能够在两种颜色之间进行插值,并根据给定的数字生成一个包含这些插值颜色的数组。
我发现D3有一个名为d3.interpolate()
的方法,但我不知道如何使用它。
如何使用D3插值器来生成一个颜色数组,需要指定要插值的两种颜色以及所需插值颜色的数量?
var colorInterpolator = d3.interpolateRgb("red", "green");
[0, 0.16, 0.33, 0.5, 0.66, 0.83, 1]
请查看这个演示:
var colorInterpolator = d3.interpolateRgb("red", "green");
var steps = 7;
var colorArray = d3.range(0, (1 + 1 / steps), 1 / (steps - 1)).map(function(d) {
return colorInterpolator(d)
});
console.log(colorArray)
<script src="https://d3js.org/d3.v4.min.js"></script>
var colorInterpolator = d3.interpolateRgb("red", "green");
var steps = 7;
var colorArray = d3.range(0, (1 + 1 / steps), 1 / (steps - 1)).map(function(d) {
return colorInterpolator(d)
});
d3.select("body").selectAll(null)
.data(colorArray)
.enter()
.append("div")
.attr("class", "myDivs")
.style("background-color", String)
.myDivs {
width: 40px;
height: 40px;
margin-right: 5px;
display: inline-block;
}
<script src="https://d3js.org/d3.v4.min.js"></script>