gpt4 book ai didi

d3.js - 如何替换 d3.rainbow

转载 作者:行者123 更新时间:2023-12-01 12:11:16 25 4
gpt4 key购买 nike

d3.v4.0.0-alpha.35.min.js用于this example ,有一个rainbowColor() d3.v4.min.js 中现在缺少的函数:

var color = rainbowColor()
.domain([0, 2 * Math.PI]);

有谁知道这个函数是否被移动或重命名,或者该示例的工作版本是否存在使用其他配色方案?谢谢。

最佳答案

d3v4d3v5 , 您可以使用:

var color = d3.scaleSequential()
.domain([0, 2 * Math.PI])
.interpolator(d3.interpolateRainbow);

代替:
var color = d3.scaleRainbow()
.domain([0, 2 * Math.PI]);

将您的示例转换为:

var svg = d3.select("svg"),
width = +svg.attr("width"),
height = +svg.attr("height"),
size = Math.max(width, height);

var color = d3.scaleSequential()
.domain([0, 2 * Math.PI])
.interpolator(d3.interpolateRainbow);

var circles = d3.packSiblings(d3.range(2000)
.map(d3.randomUniform(8, 26))
.map(function(r) { return {r: r}; }))
.filter(function(d) { return -500 < d.x && d.x < 500 && -500 < d.y && d.y < 500; });

svg
.select("g")
.selectAll("circle")
.data(circles)
.enter().append("circle")
.style("fill", function(d) { return color(d.angle = Math.atan2(d.y, d.x)); })
.attr("cx", function(d) { return Math.cos(d.angle) * (size / Math.SQRT2 + 30); })
.attr("cy", function(d) { return Math.sin(d.angle) * (size / Math.SQRT2 + 30); })
.attr("r", function(d) { return d.r - 0.25; })
.transition()
.ease(d3.easeCubicOut)
.delay(function(d) { return Math.sqrt(d.x * d.x + d.y * d.y) * 10; })
.duration(1000)
.attr("cx", function(d) { return d.x; })
.attr("cy", function(d) { return d.y; });
body {
background: #333;
}

circle {
stroke: #000;
stroke-width: 1.5px;
}
<svg width="960" height="960"><g transform="translate(480,480)"></g></svg>
<script src="http://d3js.org/d3.v4.min.js"></script>


在哪里 scaleSequentiald3-scale 的一部分子模块和 interpolateRainbowd3-scale-chromatic 的一部分子模块。

d3 版本 3 和 4 之间有重大的 api 更改。 d3.v4.0.0-alpha.35.min.js可能是版本 4 的早期 alpha 版本,仍然使用版本 3 api 来实现该特定功能。

关于d3.js - 如何替换 d3.rainbow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51697569/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com