Linkurious属性不起作用

时间:2015-06-27 04:45:18

标签: neo4j sigma.js linkurious

我正在尝试设置“视觉变量”,但却失败了。完整的代码在这里:answer

<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>

在上面,我希望显示的每个节点都呈现为正方形,但事实并非如此。请注意,颜色设置正确,但labelAlignmenttype都不受尊重。

我不能这样做吗?或者我错过了什么?

*更新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 个答案:

答案 0 :(得分:3)

您使用什么节点渲染器?最好使用sigma.renderers.linkurious。渲染器是Sigma的标准渲染器的猴子补丁。要使用sigma.renderers.linkurious,只需将该渲染器的文件添加到代码中,如https://github.com/Linkurious/linkurious.js/blob/linkurious-version/examples/renderers-linkurious.html所示。

{{1}}不是节点属性,而是要在所有节点上应用的Sigma设置,请参阅https://github.com/Linkurious/linkurious.js/wiki/Settings。您无法将其应用于特定节点。

EDIT2:已修复为https://github.com/Linkurious/linkurious.js/issues/139