как реализовать все узлы в d3 venn.js javascript - PullRequest
0 голосов
/ 16 января 2019

Я реализовал d3 venn.js в javascript в моем коде. И код диаграммы Венна перекрывает повторяющийся набор. Но я хочу, чтобы этот узел также появился, потому что он принадлежит другому параметру Api. Как мой набор и код -

venn.js

sets = [{sets: ["output"], size: 12, value: "return"}

{sets: ["txnstatus"], size: 12, value: "return"},

{sets: ["folderindex"], size: 12, value: "return"},

{sets: ["processinstanceid"], size: 12, value: "return"},

{sets:["output", "txnstatus"], size: 2, value: 2},

{sets: ["output", "folderindex"], size: 2, value: 2},

{sets: ["output", "processinstanceid"], size: 2, value: 2},

{sets: ["txnstatus", "folderindex"], size: 2, value: 2},

{sets: ["txnstatus", "processinstanceid"], size: 2, value: 2},

{sets: ["folderindex", "processinstanceid"], size: 2, value: 2},

{sets: ["disconparams"], size: 12, value: "cabinetname"},

{sets: ["input"], size: 12, value: "disconparams"},

{sets: ["cabinetname"], size: 12, value: "disconparams"},

{sets: ["userdbid"], size: 12, value: "disconparams"},

{sets: ["input", "cabinetname"], size: 2, value: 2},

{sets: ["input", "userdbid"], size: 2, value: 2},

{sets: ["cabinetname", "userdbid"], size: 2, value: 2},

sets: ["disconparams"], size: 12, value: "userdbid"},

{sets: ["return_2"], size: 12, value: "userdbid"},

{sets:  ["disconparams", "return_2"], size: 2, value: 2}
]



 console.log("sets=",sets)
  console.log("sets.length = ", sets.length)

  var lengthWidthHeights = [
    // min, max, width, height
    [0, 24, 800, 800],
    [25, 50, 1000, 1000],
    [51, 100, 1500, 1500]

  ];



  var chart;
  var foundItem = lengthWidthHeights.find(([min, max]) => length >= min && length <= max);
  if (foundItem) {
           const [,,width, height] = foundItem;

    chart = venn.VennDiagram().wrap(false) .fontSize("18px").width(width).height(height);


  }



function annotateSizes() {
  d3.select(this).select("text")
      .append("tspan")
      .text(function(d) { return "of: " + d.value; })
      .attr("x", function() { return d3.select(this.parentNode).attr("x"); })
      .attr("dy", "1.5em")
      .style("fill", "#666")
      .style("font-size", "14px")


}     

function updateVenn(sets) {
  var div = d3.select("#venn").datum(sets);
  var layout = chart(div),
      textCentres = layout.textCentres;
  div.selectAll(".label").style("fill", "white");
  div.selectAll(".venn-circle path").style("fill-opacity", .6);


div.selectAll("g").transition("venn").each("end", annotateSizes).duration(0);



  return layout;
}

updateVenn(sets);

** изображение - **

venn

Здесь, в наборе, узел «отсоединяется» встречается в двух случаях в единственном числе -

1

{sets: ["disconparams"], размер: 12, значение: "userdbid"},

[2]

{наборы: ["отсоединение"], размер: 12, значение: "имя_кабайета"},

Здесь «отсоединение» от имени шкафа отменяет «отсоединение» от userdbid. Я не хочу, чтобы это случилось. Я хочу, чтобы все узлы появились на диаграмме Венна. И ничто не должно быть переопределено. Пожалуйста, предложите

...