我最近使用prefuse进行一些可视化。我做的是 我从数据库加载一些信息,为它们创建一个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);
答案 0 :(得分:0)
有一个prefuse Graph的构造函数,它采用边缘表,如你所知:
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索引标记到节点表中。创建列:
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);
你有正确的想法!
P.S。:如果你正在编写一个图形阅读器,就像你看来的那样,我真的建议继承AbstractGraphReader
。它将使您的生活更轻松,因为您可以像使用内置图形阅读器一样使用新课程。