← Back to team overview

gephi.team team mailing list archive

[Question #122573]: Graph with Black background and white edges

 

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.