繁体   English   中英

Prefuse API Java创建边

[英]Prefuse API java creating edges

我最近正在使用prefuse进行一些可视化。 我要做的是从数据库中加载一些信息,为它们创建一个预熔表实例,并基于该信息制作一个图形。 这很好。

我的问题是如何为该图创建边缘

我假设我必须创建另一个表来容纳边缘,但是我不知道创建该东西的方式...感谢您的帮助! 谢谢!

这是我为图形设置数据的代码:

    Table nodeData = null;
    String query1 = "my_select_statement";

    try {
        nodeData = datasrc.getData(query1);

    } catch (DataIOException ex) {
        ex.getMessage();
        ex.printStackTrace();
    }

Graph graph = new Graph(nodeData, true);

如您所建议的,有一个预混合图的构造函数,该结构带有一个边缘表:

public Graph(Table nodes, Table edges, boolean directed)

我建议您检查一下这个非常简单的用空格分隔的矩阵阅读器,以供参考: https : //github.com/brycecr/msmexplorer/blob/master/MSMExplorer/src/edu/stanford/folding/msmexplorer/io/DatGraphReader.java

简而言之,您只是创建一个表,但是需要“源”和“目标”列,其中这些列中的条目是节点表中的0索引索引。 创建列:

m_edgeTable = new Table();
m_edgeTable.addColumn(Graph.DEFAULT_SOURCE_KEY, int.class); //0th
m_edgeTable.addColumn(Graph.DEFAULT_TARGET_KEY, int.class); //1st

分配源列和目标列:

m_edgeTable.addRow();
m_edgeTable.set(rowNum, 0, sourceNodeIndex);
m_edgeTable.set(rowNum, 1, targetNodeIndex);

您有正确的主意!

PS:如果您正在编写一个图形阅读器,看起来确实是这样,那么我真的建议对AbstractGraphReader子类AbstractGraphReader 这将使您的生活更轻松,因为您可以像使用内置图形阅读器一样使用新类。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM