D3.js ro如何取代d3.0

D3.js ro如何取代d3.0,d3.js,D3.js,使用中使用的d3.v4.0.0-alpha.35.min.js,现在在d3.v4.min.js中缺少一个rainbowColor()函数: var color = rainbowColor() .domain([0, 2 * Math.PI]); 是否有人知道此函数是否已被移动或重命名,或者是否存在使用其他颜色方案的该示例的工作版本?谢谢。使用d3v4和d3v5,您可以使用: var color = d3.scaleSequential() .domain([0, 2 * Math.P

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

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

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

使用
d3v4
d3v5
,您可以使用:

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

var color = d3.scaleRainbow()
  .domain([0, 2 * Math.PI]);
将您的示例转换为:

var svg=d3.选择(“svg”),
宽度=+svg.attr(“宽度”),
高度=+svg.attr(“高度”),
尺寸=数学最大值(宽度、高度);
var color=d3.scaleSequential()
.domain([0,2*Math.PI])
.内插器(d3.内插器箭头);
变量圆=d3.填料(d3.范围(2000年)
.地图(d3.1(8,26))
.map(函数(r){return{r:r};}))
.filter(函数(d){return-500
正文{
背景:#333;
}
圈{
行程:#000;
笔划宽度:1.5px;
}

在d3v6中,这已更改为

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

scaleSequential
的域是[0..2pi]。但是
atan2()
给出了[-pi..pi]的结果。[-pi..0]部分是如何映射到范围的?据我所知,它是一个连续标度(在本例中为域[0,2pi]),这意味着-pi/2(域外)将通过域长度的模映射到3pi/2(域内)。因此
color(-0.5*Math.PI)=color(1.5*Math.PI)=rgb(255,94,99)
。使用[0,2pi]而不是[-pi,pi]将产生一个pi偏移量,从而使彩虹旋转180°。文档中提到了域外值的外推(如果钳制为假),但我找不到模解释,可能是插值器的一个特征。但是插值器得到一个介于[0..1]之间的值,该值由标度的
部分确定。未记录的特征。