Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
D3.js d3v4散点图-修复添加动画的域_D3.js_Scatter Plot - Fatal编程技术网

D3.js d3v4散点图-修复添加动画的域

D3.js d3v4散点图-修复添加动画的域,d3.js,scatter-plot,D3.js,Scatter Plot,我正在尝试升级一个旧的散点图——但是映射域已经成为一个问题,因为它不能正确地呈现点的位置 //版本4尝试 //旧版本3 我试图重构数据集,使其能够包含标签信息,以便将来可能生成图例 var x = d3.scale.linear() .domain([0, d3.max(data, function(d) { return d[0]; })]) .range([ 0, width ]);

我正在尝试升级一个旧的散点图——但是映射域已经成为一个问题,因为它不能正确地呈现点的位置

//版本4尝试

//旧版本3

我试图重构数据集,使其能够包含标签信息,以便将来可能生成图例

        var x = d3.scale.linear()
                  .domain([0, d3.max(data, function(d) { return d[0]; })])
                  .range([ 0, width ]);

        var y = d3.scale.linear()
                  .domain([0, d3.max(data, function(d) { return d[1]; })])
                  .range([ height, 0 ]);
我已经尝试使用d3v4标准在我的版本中修复它

        var x = d3.scaleLinear()
                  .domain([0, d3.max(data, function(d) { return d.value[0]; })])
                  .range([ 0, width ]);

        var y = d3.scaleLinear()
                  .domain([0, d3.max(data, function(d) { return d.value[1]; })])
                  .range([ height, 0 ]);

问题在于您的
d3.max
。您的数据是一个具有不同系列值的对象数组。如果要查找所有值的最大值,必须迭代所有data.values,因此一种方法是获取所有值并将其放在数组上,然后查找其最大值

var x=d3
.scaleLinear()
.domain([0,d3.max(data.map(s=>s.value).flat(),d=>d[0]))
.范围([0,宽度])
变量y=d3
.scaleLinear()
.domain([0,d3.max(data.map(s=>s.value).flat(),d=>d[1]))
.范围([0,高度])