Daw*_*ood 2 java graph toolkit gephi
我正在尝试创建一个动态图并使用Gephi工具包对其进行流式处理.到目前为止,我已经按照工具包和流媒体插件教程创建了一个普通的图形并将其流式传输到Gephi GUI.
我很难弄清楚如何使图形动态化 - 我已经设法TimeInterval使用了这些列添加到Node和Edge表中,AttributeModel但是当我在GUI中打开时间轴窗口时,它表示图形不是动态的.模型/控制器对我来说有点混乱.
这是我现在的代码:
ProjectController pc = Lookup.getDefault().lookup(ProjectController.class);
pc.newProject();
Workspace workspace = pc.getCurrentWorkspace();
AttributeController attributeController = Lookup.getDefault().lookup(AttributeController.class);
AttributeModel attributeModel = attributeController.getModel();
AttributeColumn nodeTimeColumn = attributeModel.getNodeTable().addColumn(DynamicModel.TIMEINTERVAL_COLUMN, AttributeType.TIME_INTERVAL, AttributeOrigin.PROPERTY);
AttributeColumn edgeTimeColumn = attributeModel.getEdgeTable().addColumn(DynamicModel.TIMEINTERVAL_COLUMN, AttributeType.TIME_INTERVAL, AttributeOrigin.PROPERTY);
GraphController graphController = Lookup.getDefault().lookup(GraphController.class);
GraphModel graphModel = graphController.getModel();
DirectedGraph graph = graphModel.getDirectedGraph();
// At this point, I want to make the graph dynamic so that I can use
// the Timeline feature when I stream to the GUI.
StreamingServer server = Lookup.getDefault().lookup(StreamingServer.class);
ServerControllerFactory controllerFactory = Lookup.getDefault().lookup(ServerControllerFactory.class);
ServerController serverController = controllerFactory.createServerController(graph);
String context = "/testing";
server.register(serverController, context);
Run Code Online (Sandbox Code Playgroud)
原则上,Gephi Graph Streaming是一种替代方案,可以使用比加载大型动态图形更少的内存来实时显示图形中的变化.因此,在每个时间点,您没有内存中的完整动态图,而是表示图的当前状态的静态图.这就是为什么默认情况下,插件只创建和更新静态图形.
遗憾的是,使用图表流更新动态图表尚不可能.我们计划在不久的将来支持它,并且可以通过更改以下类的操作来实现此类操作:
正如您在此文件中看到的那样,没有处理动态属性; 添加,更改或删除新节点/边/属性,但动态列没有更新.
| 归档时间: |
|
| 查看次数: |
2472 次 |
| 最近记录: |