Граппа Графвиз Дот-Визуализация Проблемы и вопросы - PullRequest
3 голосов
/ 28 августа 2011

Я использую этот точечный код для моего теста:

digraph G { edge [dir=none];
p1 [shape=circle,style=filled,label="",height="0.01",width="0.01"];
q1 [shape=circle,style=filled,label="",height="0.01",width="0.01"];
q2 [shape=circle,style=filled,label="",height="0.01",width="0.01"];
q3 [shape=circle,style=filled,label="",height="0.01",width="0.01"];
{rank=same; father->p1; mother->p1};
{rank=same; q1->q2->q3};
{rank=same; son1; daughter1; daughter2};
p1->q2;
q1->son1;
q2->daughter1;
q3->daughter2;
}

Мой код Java для создания графика следующий:

Graph graph = null;

    graph = program.getGraph();

    JScrollPane jsp = new JScrollPane();
    jsp.getViewport().setBackingStoreEnabled(true);

    GrappaPanel gp = new GrappaPanel(graph);
    gp.addGrappaListener(new GrappaAdapter());
    gp.setScaleToFit(false);
    jsp.setViewportView(gp);

Вывод такой: Ссылка

Почему дерево отформатировано так неправильно?И есть ли возможность отображать дерево слева направо?

1 Ответ

1 голос
/ 14 мая 2012

Вы должны «попросить» graphviz (любой из инструментов, «dot», «neato» ...) «отформатировать» график, прежде чем вы сможете отобразить его (привлекательным способом) в GrappaPanel.Прежде чем создавать GrappaPanel, вам необходимо сделать следующее:

String [] processArgs = {"dot"}; // You can use "neato" or whatever formatter you want
Process formatProcess = Runtime.getRuntime().exec(processArgs, null, null);
GrappaSupport.filterGraph(graph, formatProcess);
formatProcess.getOutputStream().close();

Где «график» в GrappaSupport.filterGraph - это ваш график.После этого ваш график отформатирован правильно, и вы можете использовать GrappaPanel для его просмотра.Результат будет более приятным, чем то, что вы опубликовали в ссылке.

Надеюсь, что это помогает, с уважением.

PS: для того, чтобы вышеуказанный код работал, у вас должна быть точка.(или любой другой форматер, который вы используете), чтобы быть в пути, в противном случае вам нужно указать полный путь к исполняемому файлу.

...