gephi.team team mailing list archive
-
gephi.team team
-
Mailing list archive
-
Message #00536
[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.