Search in sources :

Example 11 with Node

use of org.gephi.graph.api.Node in project gephi by gephi.

the class Modularity method saveValues.

private void saveValues(int[] struct, Graph graph, CommunityStructure theStructure) {
    Table nodeTable = graph.getModel().getNodeTable();
    Column modCol = nodeTable.getColumn(MODULARITY_CLASS);
    if (modCol == null) {
        modCol = nodeTable.addColumn(MODULARITY_CLASS, "Modularity Class", Integer.class, 0);
    }
    for (Node n : graph.getNodes()) {
        int n_index = theStructure.map.get(n);
        n.setAttribute(modCol, struct[n_index]);
    }
}
Also used : Table(org.gephi.graph.api.Table) Column(org.gephi.graph.api.Column) Node(org.gephi.graph.api.Node)

Example 12 with Node

use of org.gephi.graph.api.Node in project gephi by gephi.

the class PageRank method setInitialValues.

private void setInitialValues(Graph graph, double[] pagerankValues, double[] weights, boolean directed, boolean useWeights) {
    int N = graph.getNodeCount();
    int index = 0;
    for (Node s : graph.getNodes()) {
        pagerankValues[index] = 1.0f / N;
        if (useWeights) {
            double sum = 0;
            EdgeIterable eIter;
            if (directed) {
                eIter = ((DirectedGraph) graph).getOutEdges(s);
            } else {
                eIter = ((UndirectedGraph) graph).getEdges(s);
            }
            for (Edge edge : eIter) {
                sum += edge.getWeight();
            }
            weights[index] = sum;
        }
        index++;
    }
}
Also used : EdgeIterable(org.gephi.graph.api.EdgeIterable) Node(org.gephi.graph.api.Node) Edge(org.gephi.graph.api.Edge)

Example 13 with Node

use of org.gephi.graph.api.Node in project gephi by gephi.

the class DynamicDegree method loop.

@Override
public void loop(GraphView window, Interval interval) {
    Graph graph = graphModel.getGraph(window);
    DirectedGraph directedGraph = null;
    if (isDirected) {
        directedGraph = graphModel.getDirectedGraph(window);
    }
    TimeRepresentation tr = graphModel.getConfiguration().getTimeRepresentation();
    long sum = 0;
    for (Node n : graph.getNodes().toArray()) {
        int degree = graph.getDegree(n);
        if (!averageOnly) {
            switch(tr) {
                case INTERVAL:
                    n.setAttribute(dynamicDegreeColumn, degree, new Interval(interval.getLow(), interval.getLow() + tick));
                    break;
                case TIMESTAMP:
                    n.setAttribute(dynamicDegreeColumn, degree, interval.getLow());
                    n.setAttribute(dynamicDegreeColumn, degree, interval.getHigh());
                    break;
            }
            if (isDirected) {
                int indegree = directedGraph.getInDegree(n);
                int outdegree = directedGraph.getOutDegree(n);
                switch(tr) {
                    case INTERVAL:
                        n.setAttribute(dynamicInDegreeColumn, indegree, new Interval(interval.getLow(), interval.getLow() + tick));
                        n.setAttribute(dynamicOutDegreeColumn, outdegree, new Interval(interval.getLow(), interval.getLow() + tick));
                        break;
                    case TIMESTAMP:
                        n.setAttribute(dynamicInDegreeColumn, indegree, interval.getLow());
                        n.setAttribute(dynamicInDegreeColumn, indegree, interval.getHigh());
                        n.setAttribute(dynamicOutDegreeColumn, outdegree, interval.getLow());
                        n.setAttribute(dynamicOutDegreeColumn, outdegree, interval.getHigh());
                        break;
                }
            }
        }
        sum += degree;
        if (cancel) {
            break;
        }
    }
    double avg = sum / (double) graph.getNodeCount();
    averages.put(interval.getLow(), avg);
    averages.put(interval.getHigh(), avg);
    graphModel.getGraphVisible().setAttribute(DYNAMIC_AVGDEGREE, avg, interval.getLow());
    graphModel.getGraphVisible().setAttribute(DYNAMIC_AVGDEGREE, avg, interval.getHigh());
}
Also used : DirectedGraph(org.gephi.graph.api.DirectedGraph) Graph(org.gephi.graph.api.Graph) DirectedGraph(org.gephi.graph.api.DirectedGraph) TimeRepresentation(org.gephi.graph.api.TimeRepresentation) Node(org.gephi.graph.api.Node) Interval(org.gephi.graph.api.Interval)

Example 14 with Node

use of org.gephi.graph.api.Node in project gephi by gephi.

the class ClusteringCoefficientNGTest method testTriangleNonCompleteDirectedGraphClusteringCoefficient.

@Test
public void testTriangleNonCompleteDirectedGraphClusteringCoefficient() {
    GraphModel graphModel = Lookup.getDefault().lookup(GraphController.class).getGraphModel();
    DirectedGraph directedGraph = graphModel.getDirectedGraph();
    Node node1 = graphModel.factory().newNode("0");
    Node node2 = graphModel.factory().newNode("1");
    Node node3 = graphModel.factory().newNode("2");
    directedGraph.addNode(node1);
    directedGraph.addNode(node2);
    directedGraph.addNode(node3);
    Edge edge12 = graphModel.factory().newEdge(node1, node2);
    Edge edge21 = graphModel.factory().newEdge(node2, node1);
    Edge edge23 = graphModel.factory().newEdge(node2, node3);
    Edge edge32 = graphModel.factory().newEdge(node3, node2);
    Edge edge13 = graphModel.factory().newEdge(node1, node3);
    directedGraph.addEdge(edge12);
    directedGraph.addEdge(edge21);
    directedGraph.addEdge(edge23);
    directedGraph.addEdge(edge32);
    directedGraph.addEdge(edge13);
    DirectedGraph graph = graphModel.getDirectedGraph();
    ClusteringCoefficient cc = new ClusteringCoefficient();
    ArrayWrapper[] network = new ArrayWrapper[3];
    int[] triangles = new int[3];
    double[] nodeClustering = new double[3];
    HashMap<String, Double> results = cc.computeClusteringCoefficient(graph, network, triangles, nodeClustering, true);
    double avClusteringCoefficient = results.get("clusteringCoefficient");
    double res = 0.833;
    double diff = 0.01;
    assertTrue(Math.abs(avClusteringCoefficient - res) < diff);
}
Also used : Node(org.gephi.graph.api.Node) DirectedGraph(org.gephi.graph.api.DirectedGraph) GraphModel(org.gephi.graph.api.GraphModel) Edge(org.gephi.graph.api.Edge) GraphController(org.gephi.graph.api.GraphController) Test(org.testng.annotations.Test)

Example 15 with Node

use of org.gephi.graph.api.Node in project gephi by gephi.

the class ClusteringCoefficientNGTest method testSpecial3UndirectedGraphClusteringCoefficient.

@Test
public void testSpecial3UndirectedGraphClusteringCoefficient() {
    GraphModel graphModel = Lookup.getDefault().lookup(GraphController.class).getGraphModel();
    UndirectedGraph undirectedGraph = graphModel.getUndirectedGraph();
    Node node1 = graphModel.factory().newNode("0");
    Node node2 = graphModel.factory().newNode("1");
    Node node3 = graphModel.factory().newNode("2");
    Node node4 = graphModel.factory().newNode("3");
    Node node5 = graphModel.factory().newNode("4");
    Node node6 = graphModel.factory().newNode("5");
    undirectedGraph.addNode(node1);
    undirectedGraph.addNode(node2);
    undirectedGraph.addNode(node3);
    undirectedGraph.addNode(node4);
    undirectedGraph.addNode(node5);
    undirectedGraph.addNode(node6);
    Edge edge12 = graphModel.factory().newEdge(node1, node2, false);
    Edge edge23 = graphModel.factory().newEdge(node2, node3, false);
    Edge edge31 = graphModel.factory().newEdge(node3, node1, false);
    Edge edge14 = graphModel.factory().newEdge(node1, node4, false);
    Edge edge25 = graphModel.factory().newEdge(node2, node5, false);
    Edge edge36 = graphModel.factory().newEdge(node3, node6, false);
    undirectedGraph.addEdge(edge12);
    undirectedGraph.addEdge(edge23);
    undirectedGraph.addEdge(edge31);
    undirectedGraph.addEdge(edge14);
    undirectedGraph.addEdge(edge25);
    undirectedGraph.addEdge(edge36);
    Graph graph = graphModel.getGraph();
    ClusteringCoefficient cc = new ClusteringCoefficient();
    ArrayWrapper[] network = new ArrayWrapper[6];
    int[] triangles = new int[6];
    double[] nodeClustering = new double[6];
    HashMap<String, Double> results = cc.computeClusteringCoefficient(graph, network, triangles, nodeClustering, false);
    double cl1 = nodeClustering[0];
    double res1 = 0.333;
    double diff = 0.01;
    assertTrue(Math.abs(cl1 - res1) < diff);
}
Also used : Node(org.gephi.graph.api.Node) Graph(org.gephi.graph.api.Graph) UndirectedGraph(org.gephi.graph.api.UndirectedGraph) DirectedGraph(org.gephi.graph.api.DirectedGraph) GraphModel(org.gephi.graph.api.GraphModel) UndirectedGraph(org.gephi.graph.api.UndirectedGraph) Edge(org.gephi.graph.api.Edge) GraphController(org.gephi.graph.api.GraphController) Test(org.testng.annotations.Test)

Aggregations

Node (org.gephi.graph.api.Node)314 GraphModel (org.gephi.graph.api.GraphModel)173 Test (org.testng.annotations.Test)156 Edge (org.gephi.graph.api.Edge)122 UndirectedGraph (org.gephi.graph.api.UndirectedGraph)106 DirectedGraph (org.gephi.graph.api.DirectedGraph)83 GraphController (org.gephi.graph.api.GraphController)83 HashMap (java.util.HashMap)66 Graph (org.gephi.graph.api.Graph)51 NodeIterable (org.gephi.graph.api.NodeIterable)23 LinkedList (java.util.LinkedList)22 Column (org.gephi.graph.api.Column)22 EdgeIterable (org.gephi.graph.api.EdgeIterable)16 Table (org.gephi.graph.api.Table)10 HashSet (java.util.HashSet)8 ArrayList (java.util.ArrayList)7 Color (java.awt.Color)6 GraphElementsController (org.gephi.datalab.api.GraphElementsController)6 DataTablesController (org.gephi.datalab.api.datatables.DataTablesController)5 Interval (org.gephi.graph.api.Interval)5