New question #122573 on Gephi:
https://answers.launchpad.net/gephi/+question/122573

Hello,

I am generating a graph using YifanHuLayout by reading .gexf file and wanted to 
have graph as a black background and white edges. I am generating graph exactly 
opposite of this as of now. Does anyone know what should I do to get black 
background and white edges.

Also, I want to change the thickness of edges with weight of edges. Does anyone 
know how to go about it?

Here is a code that I am using. 


public class Headless {
        
        public  void getGraph(){
                //Init a project - and therefore a workspace
                ProjectController pc = 
Lookup.getDefault().lookup(ProjectController.class);
                pc.newProject();
                Workspace workspace = pc.getCurrentWorkspace();
                 
                //Get models and controllers for this new workspace - will be 
useful later
                AttributeModel attributeModel = 
Lookup.getDefault().lookup(AttributeController.class).getModel();
                GraphModel graphModel = 
Lookup.getDefault().lookup(GraphController.class).getModel();
                PreviewModel model = 
Lookup.getDefault().lookup(PreviewController.class).getModel();
                ImportController importController = 
Lookup.getDefault().lookup(ImportController.class);
                FilterController filterController = 
Lookup.getDefault().lookup(FilterController.class);
                RankingController rankingController = 
Lookup.getDefault().lookup(RankingController.class);
                 
                //Import file       
                Container container;
                try {
                        URL url = getClass().getResource("test1.gexf");
                        System.out.println(url);
                    File file = new 
File(getClass().getResource("test1.gexf").toURI());
                    container = importController.importFile(file);
                    container.getLoader().setEdgeDefault(EdgeDefault.DIRECTED); 
  //Force DIRECTED
                } catch (Exception ex) {
                    ex.printStackTrace();
                    return;
                }
                 
                //Append imported data to GraphAPI
                importController.process(container, new DefaultProcessor(), 
workspace);
                 
                //See if graph is well imported
                DirectedGraph graph = graphModel.getDirectedGraph();
                System.out.println("Nodes: " + graph.getNodeCount());
                System.out.println("Edges: " + graph.getEdgeCount());
                 
         
                //See visible graph stats
                UndirectedGraph graphVisible = 
graphModel.getUndirectedGraphVisible();
                System.out.println("Nodes: " + graphVisible.getNodeCount());
                System.out.println("Edges: " + graphVisible.getEdgeCount());
                 
                //Run YifanHuLayout for 100 passes - The layout always takes 
the current visible view
                YifanHuLayout layout = new YifanHuLayout(null, new 
StepDisplacement(1f));
                layout.setGraphModel(graphModel);
                layout.resetPropertiesValues();
                layout.setOptimalDistance(200f);
                
                for (int i = 0; i < 1000 && layout.canAlgo(); i++) {
                        layout.goAlgo();
                }
                
                                
                //Get Centrality
                GraphDistance distance = new GraphDistance();
                distance.setDirected(true);
                distance.execute(graphModel, attributeModel);
                 
                //Rank color by Degree
                NodeRanking degreeRanking = 
rankingController.getRankingModel().getDegreeRanking();
                ColorTransformer colorTransformer = 
rankingController.getObjectColorTransformer(degreeRanking);
                colorTransformer.setColors(new Color[]{new Color(0xFEF0D9), new 
Color(0xB30000)});
                rankingController.transform(colorTransformer);
                 
                //Rank size by centrality
                AttributeColumn centralityColumn = 
attributeModel.getNodeTable().getColumn(GraphDistance.BETWEENNESS);
                NodeRanking centralityRanking = 
rankingController.getRankingModel().getNodeAttributeRanking(centralityColumn);
                SizeTransformer sizeTransformer = 
rankingController.getObjectSizeTransformer(centralityRanking);
                sizeTransformer.setMinSize(3);
                sizeTransformer.setMaxSize(10);
                rankingController.transform(sizeTransformer);
                 
                //Preview
                model.getNodeSupervisor().setShowNodeLabels(Boolean.TRUE);
                ColorizerFactory colorizerFactory = 
Lookup.getDefault().lookup(ColorizerFactory.class);
                model.getUniEdgeSupervisor().setColorizer((EdgeColorizer) 
colorizerFactory.createCustomColorMode(Color.BLACK));    //Set edges black
                model.getBiEdgeSupervisor().setColorizer((EdgeColorizer) 
colorizerFactory.createCustomColorMode(Color.BLACK));    //Set mutual edges 
black
                
model.getNodeSupervisor().setBaseNodeLabelFont(model.getNodeSupervisor().getBaseNodeLabelFont().deriveFont(8));
                model.getUndirectedEdgeSupervisor().setCurvedFlag(false);
                model.getUniEdgeSupervisor().setCurvedFlag(false);
                model.getUniEdgeSupervisor().setArrowSize(0.0f);
                //Export
                ExportController ec = 
Lookup.getDefault().lookup(ExportController.class);
                try {
                    ec.exportFile(new File("test4.pdf"));
                } catch (IOException ex) {
                    ex.printStackTrace();
                    return;
                }
        }
        public static void main(String[] args){
                Headless headLess = new Headless();
                headLess.getGraph();
        }

}


I appreciate your help!

Thanks!

-- 
You received this question notification because you are a member of
Gephi Team, which is an answer contact for Gephi.

_______________________________________________
Mailing list: https://launchpad.net/~gephi.team
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~gephi.team
More help   : https://help.launchpad.net/ListHelp

Répondre à