Я реализовал 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);
** изображение - **
Здесь, в наборе, узел «отсоединяется» встречается в двух случаях в единственном числе -
1
{sets: ["disconparams"], размер: 12, значение: "userdbid"},
[2]
{наборы: ["отсоединение"], размер: 12, значение: "имя_кабайета"},
Здесь «отсоединение» от имени шкафа отменяет «отсоединение» от userdbid. Я не хочу, чтобы это случилось. Я хочу, чтобы все узлы появились на диаграмме Венна. И ничто не должно быть переопределено.
Пожалуйста, предложите