Home Wiki Blog Forum GEXF.net

Gephi forums

Community support

Rendering a new graph

Get help with your data

Rendering a new graph

Postby lmhunter7907 » 15 Jul 2013 01:53

I'm including both code and output in this post. What I'm doing is building a directed graph manually and then attempting to display that graph in a preview frame. What happens is that when the gephi builder is instantiated a new directed graph is created. After the graph is the add edge method is called to add a series of gephi node objects to the graph. After the nodes are added the edges are added.

Code: Select all
public class GephiBuilder {
 
    ProjectController pc;
    Workspace ws;
    GraphModel gm;
    DirectedGraph directedGraph;
    DynamicGraph dynamicGraph;
   
    static Logger logger = Logger.getLogger(GephiBuilder.class);
    /**
     *
     */
    public GephiBuilder() { }
   
    /**
     *
     */
    public void newGraph() {
       
        logger.info("Creating new gephi objects.");
       
        pc = Lookup.getDefault().lookup(ProjectController.class);
        pc.newProject();
       
        ws = pc.getCurrentWorkspace();
        gm = Lookup.getDefault().lookup(GraphController.class).getModel();
       
        logger.info("Creating a directed graph.");
        directedGraph = gm.getDirectedGraph();
       
    }
   
    /**
     *
     */
    public void addNode(String id, String label) {
       
        logger.info("Adding a node.  Id:  " + id + "  Label:  " + label);
        Node n = gm.factory().newNode(id);
        n.getNodeData().setLabel(label);
        n.getNodeData().setSize((float) 2.5);
       

        directedGraph.addNode(n);
    }
   
    public void AddEdge(String startNodeId,
            String endNodeId, float weight,
            boolean directed) throws MissingGephiNodeExcpetion {
       
        //Check to make sure that nodes have been created.  Error if true
        if(!nodeExists(startNodeId)) {
            throw new
                    MissingGephiNodeExcpetion("Node " + startNodeId + " was not found in the graph.");
        }
       
        if(!nodeExists(endNodeId)) {
            throw new
                    MissingGephiNodeExcpetion("Node " + endNodeId + " was not found in the graph.");
        }
       
        Node start = directedGraph.getNode(startNodeId);
        Node end = directedGraph.getNode(endNodeId);
       
        logger.info("Adding an edge.");
        logger.info("Edge start: " + start.getId() + " end: " + end.getId());
        addEdge(start, end, weight, directed);
    }
   
    /**
     *
     */
    public void addEdge(Node start, Node end, float weight, boolean directed) {
               
        Edge e = gm.factory().newEdge(start, end, weight, directed);
        directedGraph.addEdge(e);
           
    }
   
    /**
     *
     */
    public void buildGraph() {
       
       //DynamicModel dynamicModel = Lookup.getDefault().lookup(DynamicController.class).getModel();
       //dynamicGraph = new DynamicGraph();
       
    }
   
    public File exportGraph() {
        File retvalue = new File("io_gexf.gexf");
        ExportController ec = Lookup.getDefault().lookup(ExportController.class);
        GraphExporter exporter = (GraphExporter) ec.getExporter("gexf");
       
        try {
            ec.exportFile(retvalue);
            return retvalue;
           
        } catch (IOException ex) {
            return null;
        }
    }
   
    /**
     *
     */
    public void renderGraph() {
       
        ImportController ic = Lookup.getDefault().lookup(ImportController.class);
        Container container = null;
       
        try{
            container = ic.importFile(exportGraph());
        }
        catch(Exception ex) {
            return;
        }
       
        ic.process(container, new DefaultProcessor(), ws);

        //Preview configuration
        PreviewController previewController = Lookup.getDefault().lookup(PreviewController.class);
        PreviewModel previewModel = previewController.getModel();
        previewModel.getProperties().putValue(PreviewProperty.SHOW_NODE_LABELS, Boolean.TRUE);
        previewModel.getProperties().putValue(PreviewProperty.NODE_LABEL_COLOR, new DependantOriginalColor(Color.WHITE));
        previewModel.getProperties().putValue(PreviewProperty.EDGE_CURVED, Boolean.FALSE);
        previewModel.getProperties().putValue(PreviewProperty.EDGE_OPACITY, 50);
        previewModel.getProperties().putValue(PreviewProperty.EDGE_RADIUS, 10f);
        previewModel.getProperties().putValue(PreviewProperty.BACKGROUND_COLOR, Color.BLACK);
        previewController.refreshPreview();

        //New Processing target, get the PApplet
        ProcessingTarget target = (ProcessingTarget) previewController.getRenderTarget(RenderTarget.PROCESSING_TARGET);
        PApplet applet = target.getApplet();
        applet.init();

        //Refresh the preview and reset the zoom
        previewController.render(target);
        target.refresh();
        target.resetZoom();

        //Add the applet to a JFrame and display
        JFrame frame = new JFrame("Test Preview");
        frame.setLayout(new BorderLayout());
       
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add(applet, BorderLayout.CENTER);
       
        frame.pack();
        frame.setVisible(true);
       
    }
   
    private boolean nodeExists(String nodeId) {
       
        if(directedGraph.getNode(nodeId) != null)
            return true;
        else
            return false;
       
    }
}


Once all of the nodes and edges have been added, the graph is exported to a gexf file which is then loaded into a container and displayed in a preview window. I checked the output file by attempting to open in gephi but the nodes and edges didn't appear there either. So, I'm left with no idea as why I can't seem the graph. I'm hoping that someone here will be able to provide me with some insight into what is going on. I've put the output file below.

Code: Select all
<?xml version="1.0" encoding="UTF-8"?>
<gexf xmlns="http://www.gexf.net/1.2draft" version="1.2" xmlns:viz="http://www.gexf.net/1.2draft/viz" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.gexf.net/1.2draft http://www.gexf.net/1.2draft/gexf.xsd">
  <meta lastmodifieddate="2013-07-14">
    <creator>Gephi 0.8.1</creator>
    <description></description>
  </meta>
  <graph defaultedgetype="directed" mode="static">
    <nodes>
      <node id="1.2.1" label="Test 2.1">
        <attvalues></attvalues>
        <viz:size value="2.5"></viz:size>
        <viz:position x="221.06403" y="311.56934" z="0.0"></viz:position>
        <viz:color r="153" g="153" b="153"></viz:color>
      </node>
      <node id="1.2.2" label="Test 2.2">
        <attvalues></attvalues>
        <viz:size value="2.5"></viz:size>
        <viz:position x="332.10828" y="243.84601" z="0.0"></viz:position>
        <viz:color r="153" g="153" b="153"></viz:color>
      </node>
      <node id="1.0" label="Test">
        <attvalues></attvalues>
        <viz:size value="2.5"></viz:size>
        <viz:position x="-259.47906" y="159.45837" z="0.0"></viz:position>
        <viz:color r="153" g="153" b="153"></viz:color>
      </node>
      <node id="1.4" label="Test 4">
        <attvalues></attvalues>
        <viz:size value="2.5"></viz:size>
        <viz:position x="-308.87735" y="-52.75769" z="0.0"></viz:position>
        <viz:color r="153" g="153" b="153"></viz:color>
      </node>
      <node id="1.3" label="Test 3">
        <attvalues></attvalues>
        <viz:size value="2.5"></viz:size>
        <viz:position x="397.72437" y="129.328" z="0.0"></viz:position>
        <viz:color r="153" g="153" b="153"></viz:color>
      </node>
      <node id="1.2" label="Test 2">
        <attvalues></attvalues>
        <viz:size value="2.5"></viz:size>
        <viz:position x="-208.681" y="-37.868225" z="0.0"></viz:position>
        <viz:color r="153" g="153" b="153"></viz:color>
      </node>
      <node id="1.1" label="Test 1">
        <attvalues></attvalues>
        <viz:size value="2.5"></viz:size>
        <viz:position x="505.15796" y="54.056763" z="0.0"></viz:position>
        <viz:color r="153" g="153" b="153"></viz:color>
      </node>
    </nodes>
    <edges>
      <edge source="1.0" target="1.4">
        <attvalues></attvalues>
      </edge>
      <edge source="1.0" target="1.3">
        <attvalues></attvalues>
      </edge>
      <edge source="1.0" target="1.2">
        <attvalues></attvalues>
      </edge>
      <edge source="1.0" target="1.1">
        <attvalues></attvalues>
      </edge>
      <edge source="1.2" target="1.2.1">
        <attvalues></attvalues>
      </edge>
      <edge source="1.2" target="1.2.2">
        <attvalues></attvalues>
      </edge>
    </edges>
  </graph>
</gexf>
lmhunter7907
 
Posts: 3
Joined: 25 May 2013 15:14

Re: Rendering a new graph

Postby lmhunter7907 » 15 Jul 2013 02:29

Just a quick addendum. When I export the graph from Gephi to a PDF file, the nodes are displayed. I'm not sure what this means though, other than the gexf file isn't corrupt.
lmhunter7907
 
Posts: 3
Joined: 25 May 2013 15:14

Re: Rendering a new graph

Postby eduramiba » 24 Jul 2013 19:47

Hi,
Are you able to see other graphs?
Does the graph show in Preview?
If it only does not work in Overview,you can try to update your graphic drivers.

Eduardo
Life... is like a grapefruit. It's orange and squishy, and has a few pips in it, and some folks have half a one for breakfast.
User avatar
eduramiba
Gephi Code Manager
 
Posts: 581
Joined: 22 Mar 2010 16:30
Location: Zaragoza, Spain

Re: Rendering a new graph

Postby imenMegd » 29 Nov 2013 18:15

hello,

I have the same problem,
did you find a solution?

thanks
imenMegd
 
Posts: 6
Joined: 07 Oct 2013 11:09


Return to Data Import / Export

Who is online

Users browsing this forum: No registered users and 2 guests

sports medicine portsmouth nh where to buy metronidazole