2

我正在尝试设置“视觉变量”但失败了。完整的代码在这里: 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尊重。

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

*更新我*

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();
}

我希望在节点内产生红色边缘和标签,但两者都没有。我还需要什么?

4

1 回答 1

3

你用什么节点渲染器?最好使用 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中修复

于 2015-06-27T10:31:45.970 回答