Hier habe ich eine einfache grafische Darstellung haben demonstriert das Problem:Hinzufügen Rand kollabiert Knoten mit cose Layout
var cy = cytoscape({
container: document.getElementById("stage"),
elements: [{
data: {id: "a", value: 0}
}, {
data: {id: "b", value: 1}
}, {
data: {id: "ab", source: "a", target: "b", weight: 10}
}, {
data: {id: "c", value: 2}
}],
style: [{
selector: "node",
style: {
content: "data(id)",
"text-valign": "center",
color: "white",
"background-color": "mapData(value, 0, 2, red, blue)"
}
}],
layout: {
name: "cose"
}
});
Aus irgendeinem Grund, wenn ich eine Kante zwischen zwei Knoten hinzufügen, diese beiden Knoten kollabieren zusammen werden (obenauf von einander). Nach dem CoSE demo on GitHub habe ich keine Ahnung, warum es passiert. Irgendwelche Ideen?
Demo des Problems: https://jsfiddle.net/DerekL/mthg1uv5/
Es sollte drei Knoten sein: a
, b
und c
, aber a
und b
sind übereinander angeordnet. Ziehen Sie den Knoten b
aus dem Weg und Sie können den Knoten a
darunter sehen.
Keine schlechte Lösung, danke, –
CoSE Bilkent hat standardmäßig "randomize: true" - im Gegensatz zu jedem anderen kraftgesteuerten Layout. Wenn Sie keine Randomisierung angeben und alle Knoten die gleiche Anfangsposition haben, ist der Abstand zwischen den Knoten null und ein kraftgesteuertes Layout wird die Knoten natürlich nicht verschieben. – maxkfranz
CoSE Bilkent produziert bessere Ausgänge mit weniger Konfiguration, aber es ist viel teurer als die enthaltene Version von CoSE. – maxkfranz