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