首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Prefuse java创建边缘

Prefuse java创建边缘
EN

Stack Overflow用户
提问于 2012-09-12 22:27:56
回答 1查看 294关注 0票数 0

我最近使用Pre引信来做一些可视化。我所做的就是从一个数据库中加载一些信息,为它们制作一个预融合表实例,并根据这些信息生成一个图表。这个很好用。

我的问题是,我如何为图创建边??

我想我必须创建另一张桌子来保存边缘,但我不知道如何创建那个东西.任何帮助都很感激!谢谢!

这是我的代码,用于设置图形的数据

代码语言:javascript
复制
    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);
EN

回答 1

Stack Overflow用户

发布于 2012-09-19 00:50:26

预融合图有一个构造函数,它采用边缘表,如您所建议的那样:

代码语言:javascript
复制
public Graph(Table nodes, Table edges, boolean directed)

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

简而言之,您只需创建一个表,但是需要"source“和"target”列,在这些列中的条目是0-索引到节点表中。创建列:

代码语言:javascript
复制
m_edgeTable = new Table();
m_edgeTable.addColumn(Graph.DEFAULT_SOURCE_KEY, int.class); //0th
m_edgeTable.addColumn(Graph.DEFAULT_TARGET_KEY, int.class); //1st

分配源列和目标列:

代码语言:javascript
复制
m_edgeTable.addRow();
m_edgeTable.set(rowNum, 0, sourceNodeIndex);
m_edgeTable.set(rowNum, 1, targetNodeIndex);

你的想法是对的!

P.S.:如果你写的是一个图形阅读器,就像你看起来的那样,我真的建议你对AbstractGraphReader进行子类化。它将使您的生活更加轻松,因为您可以使用您的新类的方式与内置的图形阅读器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12396982

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档