标签: jung

比较开源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
查看次数

什么是jung2(Java的图形框架)Maven仓库网址是什么?

我正在寻找一个分发jung2包的maven存储库.不幸的是,我无法找到有关其位置的任何信息.

更新:我已经包含了cental存储库repo1.

 <repository>
  <id>central</id>
  <name>Maven Repository Switchboard</name>
  <layout>default</layout>
  <url>http://repo1.maven.org/maven2</url>
  <snapshots>
    <enabled>false</enabled>
  </snapshots>
</repository>
Run Code Online (Sandbox Code Playgroud)

但我仍然得到一个错误:10/4/10 1:31:57 PM CEST:缺少神器net.sf.jung:jung2:jar:2.0.1:编译.我在Mac OSX上使用Maven 3.0-SNAPSHOT.

Update2:Jung2依赖声明:

  <dependency>
                <groupId>net.sf.jung</groupId>
                <artifactId>jung2</artifactId>
                <version>2.0.1</version>
                <type>pom</type>                 
        </dependency>
Run Code Online (Sandbox Code Playgroud)

添加pom后,没有错误消息.不幸的是,maven没有检索jung2模块的罐子.

[解决]我还添加了对jung-graph-impl的依赖,我现在可以在我的项目中使用jung2:

   <dependency>
        <groupId>net.sf.jung</groupId>
            <artifactId>jung-graph-impl</artifactId>
            <version>2.0.1</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

java maven-2 repository jung

17
推荐指数
2
解决办法
4951
查看次数

改变JUNG中顶点的大小/颜色

如何更改Jung Visualization Library中特定顶点的大小?

我正在阅读文档,但我不是非常熟悉java,我找不到任何好的例子.

java graph jung

13
推荐指数
1
解决办法
9268
查看次数

交互式Python网络/图形建模

我正在寻找一个python库,它允许我以交互方式绘制网络和图形并将数据附加到节点和边缘.

我找到了两个似乎可以做我需要的Java库:JUNGpiccolo2d.这些是否有任何python等价物?

python graph piccolo jung

12
推荐指数
1
解决办法
6548
查看次数

图表的自动布局(JGraphX)

我无法显示具有自动布局的JGraphX.

我的程序(下面的代码)创建一个这样的输出: 在此输入图像描述

一个足够的结果可能看起来像这样(我用手移动它们): 在此输入图像描述

我不必坚持JGraphX.我还测试JUNGJGraphT.但到目前为止,这是我最好的结果.我需要的是我的数据视图,其上有定向的eges和一些标签.

我制作了一个示例代码,展示了它是如何创建的.它类似于http://forum.jgraph.com/questions/4810/how-to-layout-nodes-automatically-using-fast-organic-layout.有一个评论从2012年,提到相同的问题"[...]但是我注意到节点有时重叠,你知道一种方法来解决这个问题,我已经玩了属性,它似乎很随意.一般来说如何改善外观的任何建议?"

public class Test extends JFrame {

        public static void main(String[] args) {
                JFrame f = new JFrame();
                f.setSize(800, 800);
                f.setLocation(300, 200);
                f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

                final mxGraph graph = new mxGraph();

                mxGraphComponent graphComponent = new mxGraphComponent(graph);
                f.getContentPane().add(graphComponent, BorderLayout.CENTER);

                f.setVisible(true);
                Object parent = graph.getDefaultParent();

                graph.getModel().beginUpdate();
                try {
                        Object start = graph.insertVertex(parent, "start", "start", 100,
                                        100, 80, 30);
                        for (int i = 0; i < 10; i++) {
                                Object a = graph.insertVertex(parent, …
Run Code Online (Sandbox Code Playgroud)

java graph jgrapht jung jgraphx

10
推荐指数
1
解决办法
3661
查看次数

Jung着色顶点有价值

我现在被Java库Jung困住了.

我显示顶点和边,只有我找不到顶点着色的任何函数,我需要顶点的值,而不是鼠标.

import edu.uci.ics.jung.algorithms.layout.FRLayout;
import edu.uci.ics.jung.algorithms.layout.Layout;
import edu.uci.ics.jung.graph.Graph;
import edu.uci.ics.jung.visualization.BasicVisualizationServer;
import edu.uci.ics.jung.visualization.decorators.PickableVertexPaintTransformer;
import edu.uci.ics.jung.visualization.decorators.ToStringLabeller;
import edu.uci.ics.jung.visualization.renderers.DefaultVertexLabelRenderer;
import edu.uci.ics.jung.visualization.renderers.Renderer.VertexLabel.Position;

import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JFrame;

import org.apache.commons.collections15.Transformer;
import org.apache.commons.collections15.functors.ConstantTransformer;

public class Design {
     public Graph<String, Integer> g;
    public Design() {     

         this.g = ProjectTools.readNet("SmallTown.net");
    }

    public static <Paint> void main(String[] args) {
        Design sgv = new Design(); 
        Layout<Integer, String> layout = new FRLayout(sgv.g);
        layout.setSize(new Dimension(800,800));  
        BasicVisualizationServer<Integer, String> vv =
            new BasicVisualizationServer<Integer, String>(layout);

        Transformer<Integer,Paint> vertexPaint = new Transformer<Integer,Paint>() {
            public Paint …
Run Code Online (Sandbox Code Playgroud)

java edges vertex jung

8
推荐指数
1
解决办法
3194
查看次数

如何使用JUNG绘制树形层次结构?

我是JUNG的新手.我尝试使用TreeLayout绘制树的图形,但树永远不会像真正的树一样出现.每次树看起来都不一样.如何使树看起来像普通树,其根部位于顶部,其余节点从其下降?

java tree layout graph jung

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

改进JUNG图的渲染

我正在使用jung直观地显示大型数据集(1000个节点)但是当我放大或缩小或移动节点时系统变得非常迟缓.反正有没有改进JUNG图形的渲染?

java jung

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

JUNG图形可视化中的顶点标签

我写了一个小图形可视化类:

    public void simpleGraph(SparseMultigraph<Vertex,SEdge> graph, String name) {

    Layout<Vertex, SEdge> layout = new ISOMLayout(graph);
    layout.setSize(new Dimension(800,800));
    BasicVisualizationServer<Vertex, SEdge> vv = new BasicVisualizationServer<Vertex, SEdge>(layout);
    vv.setPreferredSize(new Dimension(850,850)); //Sets the viewing area size

    JFrame frame = new JFrame(name);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.getContentPane().add(vv); 
    frame.pack();
    frame.setVisible(true);                 
}
Run Code Online (Sandbox Code Playgroud)

如何为顶点和边添加标签?值存储在我的自定义顶点类中.我可以迭代布局或BasicVisualizationServer中的所有顶点并添加标签吗?

谢谢你的帮助!

java graph visualizer jung

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

JUNG:将整个图形(不仅仅是可见部分)保存为图像

我一直在寻找我的问题的解决方案,但没有什么是我想要的.

我想要做的是将整个JUNG图(使用自定义顶点和边渲染)保存到图像(PNG或JPEG).当我将VisualizationViewer保存到BufferedImage时,它只占用可见部分.我想保存整个图表,所以这不是一个选项.

有没有人知道如何将整个图形渲染成图像?

提前致谢!

java image jung graph-visualization

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