Изменение физики на основе группы - visjs
Я хотел бы, чтобы некоторые группы узлов в моем графике вели себя не так, как другие узлы.
Например, у меня есть группа под названием "свойства", которую я динамически добавляю к графику. Мне нужно изменить гравитационные константы или веса для этой группы, чтобы они были ближе к родителю, чем к остальным узлам.
Я надеюсь, что этот пример помогает визуализировать проблему. (Пришлось затемнять этикетки из-за конфиденциальной информации)
Как бы я сделал это в vis.js?
1 ответ
Решение
//
Привет, Джсон.
см. прикрепленный фрагмент кода. надеюсь, это поможет вам.
// create an array with nodes
var nodes = new vis.DataSet([
{id: 1, label: 'Node 1', group: 1},
{id: 2, label: 'Node 2', group: 2},
{id: 3, label: 'Node 3', group: 1},
{id: 4, label: 'Node 4', group: 2},
{id: 5, label: 'Node 5', group: 2}
]);
// create an array with edges
var edges = new vis.DataSet([
{from: 1, to: 3},
{from: 2, to: 4},
{from: 2, to: 5}
]);
// create a network
var container = document.getElementById('mynetwork');
var data = {
nodes: nodes,
edges: edges
};
var options = {
groups: {
1: { color: 'red', mass: 500 },// try to change this value
2: { color: 'blue', mass: 5 }
},
physics: true
};
var network = new vis.Network(container, data, options);
#mynetwork {
width: 600px;
height: 400px;
border: 1px solid lightgray;
}
p {
max-width: 600px;
}
<!doctype html>
<html>
<head>
<title>Network | Basic usage</title>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/vis/4.20.0/vis.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/vis/4.20.0/vis.min.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="mynetwork"></div>
</body>
</html>