Prefuse API Java создает ребра

Я использую 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);

person kafou    schedule 12.09.2012    source источник


Ответы (1)


Существует конструктор для prefuse Graph, который принимает таблицу ребер, как вы предлагаете:

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

Я предлагаю вам проверить эту очень простую программу чтения матриц с разделителями-пробелами для справки: DatGraphReader.java" rel="nofollow">https://github.com/brycecr/msmexplorer/blob/master/MSMExplorer/src/edu/stanford/folding/msmexplorer/io/DatGraphReader.java

Короче говоря, вы просто создаете таблицу, но вам нужны «исходные» и «целевые» столбцы, где записи в этих столбцах являются индексами с нулевым индексом в таблице узлов. Создание столбцов:

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. Это облегчит вашу жизнь в будущем, так как вы сможете использовать свой новый класс так же, как и встроенные средства чтения графиков.

person bcr    schedule 19.09.2012