Связанные атрибуты не работают
Я пытаюсь установить "визуальные переменные", но мне это не удается. полный код здесь: http://pastebin.com/j6i1B8ie
<script type="application/javascript">
var neo = {
url: 'http://localhost:7474',
user: 'neo4j',
password: '***'
};
function customiseGraph(s) {
s.graph.nodes().forEach(function(n) {
n.type = 'square';
n.color = '#4444BB';
n.labelAlignment = 'left';
if (n.neo4j_labels[0] == 'DMSys') {
n.label = n.neo4j_data.System;
}
if (n.neo4j_labels[0] == 'DMFile') {
n.label = n.neo4j_data.Name;
n.color = '#BB4444';
}
});
s.refresh();
}
sigma.neo4j.cypher(neo,
'MATCH (n) OPTIONAL MATCH (n)-[r]->(m) RETURN n,r,m LIMIT 100',
{ container: 'graph', type: 'canvas' },
customiseGraph
);
</script>
в приведенном выше примере я ожидаю, что каждый отображаемый узел отображается в виде квадрата, но это не так. обратите внимание, цвета установлены правильно, но ни labelAlignment
или же type
уважаются.
я не могу сделать это таким образом? или чего мне не хватает?
* Обновление I *
function customiseGraph(s) {
s.settings({
labelAlignment: 'inside',
edgeColor: 'default',
defaultEdgeColor: '#ff0000'
});
s.graph.nodes().forEach(function(n) {
n.color = '#4444BB';
if (n.neo4j_labels[0] == 'DMSys') {
n.label = n.neo4j_data.System;
}
if (n.neo4j_labels[0] == 'DMFile') {
n.label = n.neo4j_data.Name;
n.color = '#BB4444';
}
});
s.refresh();
}
который я ожидал бы получить красные края и метки внутри узлов, но не делает ни того, ни другого. что еще мне нужно?
1 ответ
Какой рендерер узлов вы используете? Предпочтительно использовать sigma.renderers.linkurious. Рендереры - это обезьяньи патчи стандартных рендеров Sigma. Чтобы использовать sigma.renderers.linkurious, просто добавьте файлы этого средства визуализации в ваш код, как показано в https://github.com/Linkurious/linkurious.js/blob/linkurious-version/examples/renderers-linkurious.html.
labelAlignment
это не свойство узла, а параметр Sigma, который должен применяться ко всем узлам, см. https://github.com/Linkurious/linkurious.js/wiki/Settings. Вы не можете применить его к конкретным узлам.
EDIT2: исправлено в https://github.com/Linkurious/linkurious.js/issues/139