Prefuse图形手动设置力参数

时间:2015-05-25 15:40:22

标签: java graph-visualization prefuse

here一样,我的Prefuse图表太密集而无法看到任何内容。所以我在接受的答案中尝试了@bcr建议的方法。但是,它对我不起作用。这就是我试过的:

我检索了默认设置。然后我更改了NBodyForce的{​​{1}}的第二个参数(称为ForceSimulator)和Distance的第二个参数(称为SpringForce),并将它们与其他默认值 - 进入我的新DefaultSpringLength。但输出中没有任何改变。我错了什么?

这是我的代码:

ForceSimulator

1 个答案:

答案 0 :(得分:2)

一种方法可能是添加JForcePanel,即

  

Swing组件,用于配置给定ForceForceSimulator函数的参数。用于在制作可视化文件时探索不同的参数化。

这可以帮助您找到在getForceSimulator()的实现中使用的最佳参数。

ForceSimulator fsim = ((ForceDirectedLayout) layout.get(0)).getForceSimulator();
JForcePanel fpanel = new JForcePanel(fsim);
frame.add(fpanel, BorderLayout.SOUTH);

在分发中包含的demos中,prefuse.demos.GraphView是一个完整的示例。根据经验,似乎某些参数根据所选数据集具有或多或少的影响。

附录:仔细观察,我发现您的方法使fdl的内部状态保持不变。而是创建一个新的ForceSimulator并在布局和强制面板中使用它;以下示例将defaultLength的{​​{1}}从SpringForce更改为DEFAULT_SPRING_LENGTH

42

或者,直接更新ForceDirectedLayout fdl = new ForceDirectedLayout("graph"); ForceSimulator fs = new ForceSimulator(); fs.addForce(new NBodyForce()); fs.addForce(new DragForce()); fs.addForce(new SpringForce(DEFAULT_SPRING_COEFF, 42)); fdl.setForceSimulator(fs); ,如图here所示。

SpringForce

image