D3.js d3检查类型并相应地设置类型

D3.js d3检查类型并相应地设置类型,d3.js,D3.js,我正在使用d3中的散点图,图上的点代表不同的纸张。图表上的论文可以有不同的类型,例如在图书馆、cites、被引用者,每种类型都有不同的颜色。单击“在图书馆”中键入的纸张时,将从数据库中检索单击的纸张引用的纸张和引用单击的纸张的纸张,并根据其类型在图表上显示为不同的颜色 我遇到的问题是,例如,最初有4篇论文显示在图表上,它们都是_库中的类型。当我点击其中一个,链接到它的文件就会出现。但我想要的是,如果一篇论文引用或被一篇论文引用,而这篇论文已经属于_图书馆的类型(已经在图表上),我想将其识别为_图

我正在使用d3中的散点图,图上的点代表不同的纸张。图表上的论文可以有不同的类型,例如在图书馆、cites、被引用者,每种类型都有不同的颜色。单击“在图书馆”中键入的纸张时,将从数据库中检索单击的纸张引用的纸张和引用单击的纸张的纸张,并根据其类型在图表上显示为不同的颜色

我遇到的问题是,例如,最初有4篇论文显示在图表上,它们都是_库中的类型。当我点击其中一个,链接到它的文件就会出现。但我想要的是,如果一篇论文引用或被一篇论文引用,而这篇论文已经属于_图书馆的类型(已经在图表上),我想将其识别为_图书馆的类型,并将类型更改为lets say 键入“combo”,而不是将其更改为“cites”或“Quieted by”,这样在视觉上我仍然知道它在库中,但它也是链接到所选论文的论文。这是我到目前为止检查检索到的论文是否为“In_library”类型的相关代码,如果是,请将类型更改为“combo”,否则请将类型改为“cites”或“cited by”(取决于它所处的连接)


感谢您的帮助我是d3新手,但如果我尝试的方法不可行,但如果有其他方法实现这一点,我也会非常感激。提前谢谢

在我看来,您在这里太努力了,没有利用
d3
功能。你有一堆独特的圆圈;绘制绘图时,希望绘图中的新颜色为特定颜色。更新时,您希望已经存在的颜色为新颜色。这听起来像是专为这部电影量身定做的


这里有一个问题。

您正在努力解决的确切部分是什么?您提供的代码示例是否与您怀疑的一样?你现在被困在哪里?@Matthijsbrons不,我也不会怀疑:(
function clickHandler (d, i) {

d3.json("connection2.php?paperID="+d.ID, function(error, dataJson) {

                dataJson.forEach(function(d) {

                    d.YEAR = +d.YEAR;
                    d.counter = +d.counter;
                    if (d.type === "In_library") {

                        d.type = "combo";
                        }
                    else d.type = "cited by";


                allData.push(d);
    }
})          
}
 function update(data){

    // this is our overall update selection
    var sel = svg.selectAll('circle')
      .data(data, function(d,i){
        return d.id;
      });

    // those that are updated
    // mark with combo class
    sel.attr("class", "combo");

    // these are the newly arriving guys
    sel.enter()
      .append("circle")
      .attr('cx', function(d){
        return s(d.x);
      })
      .attr('cy', function(d){
        return s(d.y);
      })
      .attr('r', 25)
      .attr("class", "in_library");
  }