标签: prefuse

比较开源java图形绘制框架(JUNG和Prefuse)绘制网络拓扑

哪个开源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那样积极开发.哪一个有更好的可视化?关于哪一个适合以及如何克服缺点的任何建议?

我可以使用其他任何框架吗?

java graph topology prefuse jung

27
推荐指数
2
解决办法
5666
查看次数

是否存在python等效的prefuse可视化工具包?

prefuse可视化工具包是相当不错的,但为Java.我想知道python是否有类似的东西.我的主要兴趣是能够导航动态图.

python visualization prefuse

10
推荐指数
2
解决办法
2196
查看次数

是否存在正在积极开发的Prefuse的Java替代品?

Prefuse工具包尚未自2009年更新的最后版本是自2007年有没有其他的Java可视化包一样强大的Prefuse但活跃的社区支持/发展?

java visualization prefuse

7
推荐指数
1
解决办法
2763
查看次数

Silverlight中的图形可视化

我有一个表示有向图的数据结构,我正在寻找一个好的Silverlight可视化,允许我从一个节点导航到另一个节点,最好是一些不错的动画.

有没有人知道这种显示器的任何良好的UI控件或框架?甚至来自另一个领域的样本(也许是社交网络?).我的图表没有很多节点,因此性能不会成为问题.

我见过用于Java(和Flash)的Prefuse库,这将是理想的."兴趣度"可视化是我追求的东西,但我在Silverlight中找不到任何东西.

谢谢你的任何提示.

silverlight tree graph prefuse

6
推荐指数
1
解决办法
7836
查看次数

需要像箭头一样预先填充图形边缘

我完成了我的作业,并在谷歌搜索了一个样本和一个在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);

因此,我想知道我错在哪里?为什么我的边缘看起来不像箭头?

谢谢你的想法.

有关更多详细信息,我想粘贴所有代码:

/* …

java prefuse

6
推荐指数
1
解决办法
2006
查看次数

Prefuse Toolkit:动态添加节点和边缘

有没有人有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)

但它似乎没有用.任何提示?

java layout graph-theory prefuse

4
推荐指数
2
解决办法
6244
查看次数

在Prefuse中创建数据

我是Prefuse的新手.演示示例是来自文件/数据库的所有加载数据.有没有办法动态创建数据而不是从文件加载.例如,我想创建一个树数据结构并将其可视化.任何简单的工作示例对我都非常有帮助.

graph prefuse population

4
推荐指数
1
解决办法
2076
查看次数

在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)

java prefuse

4
推荐指数
1
解决办法
755
查看次数

如何将我的数据加载到GraphML文件中以便在Prefuse中轻松使用?

我正在尝试使用预熔生成一些图形,并且似乎将数据加载到预熔中最简单的方法是使用GraphML文件。

有没有简便的方法可以从我的数据写入这些文件?

还是有更简单的方法将数据加载到预熔中?

谢谢

java xml graph prefuse graphml

3
推荐指数
1
解决办法
3493
查看次数