Javascript 如何仅在单击/悬停时显示d3.js中具有特定属性值的数据

Javascript 如何仅在单击/悬停时显示d3.js中具有特定属性值的数据,javascript,d3.js,Javascript,D3.js,我有一个平行坐标图 我想做的是,仅当将鼠标悬停在dataset1的行上时,才可视化dataset2类型的数据 因此,我不希望具有此属性的数据“dataset”:“dataset2”仅在单击同一类型的行时才会显示,例如bmw 例如: { "type": "bmw", "dataset": "dataset1", "car1": 0.1068310912868661,

我有一个平行坐标图

我想做的是,仅当将鼠标悬停在dataset1的行上时,才可视化dataset2类型的数据

因此,我不希望具有此属性的数据
“dataset”:“dataset2”
仅在单击同一
类型的行时才会显示,例如bmw

例如:

 {
    "type": "bmw",
    "dataset": "dataset1",
    "car1": 0.1068310912868661,
    "car2": 0.10347688576554598,
    "car3": 0.11709226547153888
  },
    {
    "type": "bmw",
    "dataset": "dataset2",
    "car1": 0.5068310912868661,
    "car2": 0.30347688576554598,
    "car3": 0.21709226547153888
  },
根据这两个数据点,我只希望第一个数据点显示在绘图中。当我单击或将鼠标悬停在第一个数据点上时,另一个数据点就会出现

我正在努力在我的d3可视化中添加此功能,因此非常感谢您的帮助。谢谢大家!

附言。 为了先把它藏起来,我试过这样的方法,但即使这样也不行

// remove dataset2 data
data.filter(function(d) { return d.dataset == "dataset2"; })
    .each(function (d) {
        if (d.dataset == "dataset2" ) {
            this.hide();
            //this.remove();
        }
    });

您可以尝试在添加组“g”时设置不透明度。 你可以通过检查来理解这个概念

我已经更改了这些代码行:

CSS:

Javascript:

    // USE THE COLOR SCALE TO SET THE STROKE BASED ON THE DATA
    foreground = svg.append("g")
        .attr("class", "foreground")
        .selectAll("path")
        .data(Data)
        .enter().append("path")
        .attr("d", draw)
        .style("stroke", function(d) {
            var company = d.type.slice(0, d.type.indexOf(' '));
            return color(company);
        })
      .classed("hidder", function(d){
        if(d.dataset=="dataset2"){
            return false;
        }else{
            return true;
        }
      });

您可以尝试在添加组“g”时设置不透明度。 你可以通过检查来理解这个概念

我已经更改了这些代码行:

CSS:

Javascript:

    // USE THE COLOR SCALE TO SET THE STROKE BASED ON THE DATA
    foreground = svg.append("g")
        .attr("class", "foreground")
        .selectAll("path")
        .data(Data)
        .enter().append("path")
        .attr("d", draw)
        .style("stroke", function(d) {
            var company = d.type.slice(0, d.type.indexOf(' '));
            return color(company);
        })
      .classed("hidder", function(d){
        if(d.dataset=="dataset2"){
            return false;
        }else{
            return true;
        }
      });

我相信你可以通过将“不透明度”设置为0来隐藏它。你能举个例子吗?谢谢我相信你可以通过将“不透明度”设置为0来隐藏它。你能举个例子吗?谢谢谢谢你的回答,但很抱歉我看不出图表中有什么不同?我仍然像以前一样在开始时绘制了所有的线条。谢谢你的回答,但很抱歉我看不到图表中的任何差异?我仍然像以前一样在开始时绘制了所有线条。