2

我是 prefuse 可视化工具包的新手,有几个一般性问题。出于我的目的,我想使用 prefuse (graphview / graphml) 执行初始可视化。渲染后,在用户单击节点时,我想完全重新加载新的 xml 文件以进行新的可视化。我想这样做是为了让我能够“预先打包”图表以供显示。

例如。如果我搜索泰德。我想要一个与 Ted 相关的 xml 文件加载并渲染一个显示。现在在显示中,我看到 Ted 有关联的节点,称为 Bill 和 Joe。当我单击 Joe 时,我想清除显示并加载与 Joe 关联的 xml 文件。等等。

我已经研究过加载一个包含所有节点和节点关系信息的非常大的 xml 文件,并允许 prefuse 使用从一个级别到另一个级别的跃点来处理这个问题。但是,最终我确信由于数据的大小会出现系统性能问题。

提前感谢您的帮助,约翰

4

2 回答 2

1

当然,正如您所说,一种选择是加载所有节点,然后将不需要的节点设置为不可见。Prefuse 可以很好地扩展,但它当然有其局限性。第二种选择是创建一个全新的面板并替换旧面板。我使用了选项 2,效果很好。

于 2010-01-10T01:46:22.687 回答
0

我远不是 Prefuse 性能问题的专家,但我认为一次加载一个巨大的 xml 文件肯定比只重新加载必要的节点的处理更耗费资源。

我不知道您使用的是哪种图表,但我会放置一个“刷新图表”,从可视化对象中删除图表,取消活动,取消布局,刷新 ActionList 并重新开始。它可能会变成这样:

public void refresh(clickedNode){
    visualization.removeGroup(GRAPH);
    visualization.removeGroup(AGGR);
    activity.cancel();
    actionList.cancel();
    visualization.reset();
    // process the XML and reload your graph here
}
于 2012-11-13T23:00:01.800 回答