哪个开源Java图形绘制框架用于具有以下要求的网络图?该图表将少于1000个节点.
1)具有平行边缘
2)在单个图形内的有向和无向边缘
3)由图像表示的节点
4)用户与节点和边缘的交互
5)动态地添加/删除节点和边缘
6)在节点和边缘上的多个标记,不同的级别用户可以关闭/打开标签.(如绘制图层并关闭/打开图层)
7)不同的布局算法,以显示星形,环形,网格拓扑
我评估了JUNG和Prefuse.这是我为每个要求找到的.
1)当JUNG支持时,Prefuse不能显示平行边缘.可以预操作代码来显示平行边缘吗?由于这涉及基本的数据级别更改,我相信通常的自定义呈现更改会更加困难.
2)我没有在prefuse和JUNG中找到任何对组合图(有向和无向边)的引用.有没有人知道呢?
3)Prefuse和JUNG都很容易
4)prefeuse和JUNG再次为用户交互提供支持.
5)prefuse和JUNG都支持它.重绘图表时每个框架如何执行?我在另一篇文章中看到,prefuse在动态更新方面效果不佳(Prefuse Toolkit:动态添加节点和边缘)
6)这归结为修改图形并重新绘制它.所以问题变得与5)相同
7)JUNG和prefuse都有多种布局算法.但是当我尝试在JUNG和Prefuse中使用FruchtermanReingoldLayout显示相同的数据集时,我会得到不同的显示.有什么想法吗?虽然Prefuse中的大多数布局算法都是基于JUNG实现的,Prefuse中的布局算法似乎显示出比JUNG更好的布局(渲染也更好).PreFuse布局(如ForceDirectedLayout/FruchtermanReingoldLayout和CircleLayout)直接映射到星形,圆形,网格拓扑.
在这些要求之外,prefuse对表达式和查询语言有很好的支持,但看起来它不像JUNG那样积极开发.哪一个有更好的可视化?关于哪一个适合以及如何克服缺点的任何建议?
我可以使用其他任何框架吗?
该prefuse可视化工具包是相当不错的,但为Java.我想知道python是否有类似的东西.我的主要兴趣是能够导航动态图.
该Prefuse工具包尚未自2009年更新的最后版本是自2007年有没有其他的Java可视化包一样强大的Prefuse但活跃的社区支持/发展?
我有一个表示有向图的数据结构,我正在寻找一个好的Silverlight可视化,允许我从一个节点导航到另一个节点,最好是一些不错的动画.
有没有人知道这种显示器的任何良好的UI控件或框架?甚至来自另一个领域的样本(也许是社交网络?).我的图表没有很多节点,因此性能不会成为问题.
我见过用于Java(和Flash)的Prefuse库,这将是理想的."兴趣度"可视化是我追求的东西,但我在Silverlight中找不到任何东西.
谢谢你的任何提示.
我完成了我的作业,并在谷歌搜索了一个样本和一个在stackoverflow之前回答的主题.但是没有找到任何东西.
我的问题是没有箭头视图的普通边缘.
以下是我希望从目标到目的地的前进箭头:
LabelRenderer nameLabel = new LabelRenderer("name");
nameLabel.setRoundedCorner(8, 8);
DefaultRendererFactory rendererFactory = new DefaultRendererFactory(nameLabel);
EdgeRenderer edgeRenderer;
edgeRenderer = new EdgeRenderer(prefuse.Constants.EDGE_TYPE_LINE, prefuse.Constants.EDGE_ARROW_FORWARD);
rendererFactory.setDefaultEdgeRenderer(edgeRenderer);
vis.setRendererFactory(rendererFactory);
这是我看到的边缘颜色,希望这些不一定是透明的:
int[] palette = new int[]{ColorLib.rgb(255, 180, 180), ColorLib.rgb(190, 190, 255)};
DataColorAction fill = new DataColorAction("socialnet.nodes", "gender", Constants.NOMINAL, VisualItem.FILLCOLOR, palette);
ColorAction text = new ColorAction("socialnet.nodes", VisualItem.TEXTCOLOR, ColorLib.gray(0));
ColorAction edges = new ColorAction("socialnet.edges", VisualItem.STROKECOLOR, ColorLib.gray(200));
ColorAction arrow = new ColorAction("socialnet.edges", VisualItem.FILLCOLOR, ColorLib.gray(200));
ActionList colour = new ActionList();
colour.add(fill);
colour.add(text);
colour.add(edges);
colour.add(arrow);
vis.putAction("colour", colour);
因此,我想知道我错在哪里?为什么我的边缘看起来不像箭头?
谢谢你的想法.
有关更多详细信息,我想粘贴所有代码:
/* …
有没有人有prefuse图形工具包的经验?是否可以更改已显示的图形,即.添加/删除节点和/或边缘,并使显示正确适应?
例如,prefuse附带了一个可视化朋友网络的示例:
http://prefuse.org/doc/manual/introduction/example/Example.java
我想做的是这样的事情:
// -- 7. add new nodes on the fly -------------------------------------
new Timer(2000, new ActionListener() {
private Node oldNode = graph.nodes().next(); // init with random node
public void actionPerformed(ActionEvent e) {
// insert new node //
Node newNode = graph.addNode();
// insert new edge //
graph.addEdge(oldNode, newNode);
// remember node for next call //
oldNode = newNode;
}
}).start();
Run Code Online (Sandbox Code Playgroud)
但它似乎没有用.任何提示?
我是Prefuse的新手.演示示例是来自文件/数据库的所有加载数据.有没有办法动态创建数据而不是从文件加载.例如,我想创建一个树数据结构并将其可视化.任何简单的工作示例对我都非常有帮助.
我使用以下代码显示图表:
graph = new Graph(true);
vis = new Visualization();
vis.add(GRAPH, graph);
CustomLabelRenderer re = new CustomLabelRenderer();
re.setImageField(NODE_TYPE_IMAGE);
re.setImagePosition(Constants.TOP);
EdgeRenderer edgeRenderer = new EdgeRenderer(Constants.EDGE_TYPE_LINE, Constants.EDGE_ARROW_FORWARD);
edgeRenderer.setArrowType(Constants.EDGE_ARROW_FORWARD);
edgeRenderer.setArrowHeadSize(10, 10);
DefaultRendererFactory factory = new DefaultRendererFactory(re, edgeRenderer);
factory.add(new InGroupPredicate(EDGE_DECORATORS), new LabelRenderer(VisualItem.LABEL));
vis.setRendererFactory(factory);
Run Code Online (Sandbox Code Playgroud)
如您所见,实例化图形以使用有向边.然后我将EdgeRenderer设置为使用箭头.但是,我看不到边缘上的任何箭头,只是简单的线条.我究竟做错了什么?
这就是我添加边缘的方式:
graph.addEdge(node1, node2);
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用预熔生成一些图形,并且似乎将数据加载到预熔中最简单的方法是使用GraphML文件。
有没有简便的方法可以从我的数据写入这些文件?
还是有更简单的方法将数据加载到预熔中?
谢谢
prefuse ×9
java ×6
graph ×4
graph-theory ×1
graphml ×1
jung ×1
layout ×1
population ×1
python ×1
silverlight ×1
topology ×1
tree ×1
xml ×1