D3.js d3v4散点图-修复添加动画的域
我正在尝试升级一个旧的散点图——但是映射域已经成为一个问题,因为它不能正确地呈现点的位置 //版本4尝试 //旧版本3 我试图重构数据集,使其能够包含标签信息,以便将来可能生成图例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 ]);
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,高度])