在d3.js中执行.data(data)时,如何跳过数组的元素
我想知道数据是否与美国不同,在d3.js中执行.data(data)时,如何跳过数组的元素,d3.js,D3.js,我想知道数据是否与美国不同,d.pais!=“美国”省略数据。我想知道数据是否与美国不同,d.pais!=“美国”省略数据。并且圆没有被创建 我怎么做 d3.selectAll("circle").remove(); g.selectAll("circle") .data(data) .enter() .append("circle") .attr("cx", function(d) { if(d.pai
d.pais
!=“美国”省略数据。我想知道数据是否与美国不同,d.pais!=“美国”省略数据。并且圆没有被创建
我怎么做
d3.selectAll("circle").remove();
g.selectAll("circle")
.data(data)
.enter()
.append("circle")
.attr("cx", function(d) {
if(d.pais=="USA" ){
return projection([d.longitud, d.latitud])[0];
}
})
.attr("cy", function(d) {
if(d.pais=="USA" ){
return projection([d.longitud, d.latitud])[1];
}
})
.attr("r", function(d) {
if(d.pais=="USA" ){
return 3;
}
})
在D3逻辑中使用数据数组之前,过滤数据数组要容易得多:
var usaData = data.filter(d => d.pais === "USA");
g.selectAll("circle")
.data(usaData)
.enter()
.append("circle")
...
您可以在W3学校网站上了解更多有关的信息…在D3逻辑中使用数据数组之前,过滤数据数组要容易得多:
var usaData = data.filter(d => d.pais === "USA");
g.selectAll("circle")
.data(usaData)
.enter()
.append("circle")
...
您可以在W3学校网站上了解有关所有元素的更多信息…在您的场景中,您的意思是希望根据您的数据“过滤”元素。
您可以对代码中的不同步骤进行过滤。就像@SteveR的回答一样,您可以使用javascript数组方法将数据预处理到d3代码中
或者在d3.js中,它还提供了一些进行过滤的方法:d3.array,继承到javascript.array,并扩展到统计方法
A.使用d3.selection.filter
B使用d3.select()
这部分就像@SteveR的答案一样
const filtered = data.filter((d)=>{return d.location !== 'USA';})
第二部分
这一部分是对元素的过滤(使用这种方法,您将不得不处理更多的考虑)
使用d3.selection.filter方法
使用d3。选择过滤滤芯并移除
Observale演示:在您的场景中,您的意思是希望根据您的数据“过滤”元素。
您可以对代码中的不同步骤进行过滤。就像@SteveR的回答一样,您可以使用javascript数组方法将数据预处理到d3代码中
或者在d3.js中,它还提供了一些进行过滤的方法:d3.array,继承到javascript.array,并扩展到统计方法
A.使用d3.selection.filter
B使用d3.select()
这部分就像@SteveR的答案一样
const filtered = data.filter((d)=>{return d.location !== 'USA';})
第二部分
这一部分是对元素的过滤(使用这种方法,您将不得不处理更多的考虑)
使用d3.selection.filter方法
使用d3。选择过滤滤芯并移除
观测演示: