首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Grappa Graphviz点可视化问题和问题

Grappa Graphviz点可视化问题和问题
EN

Stack Overflow用户
提问于 2011-08-28 04:52:40
回答 1查看 1.3K关注 0票数 3

我在我的测试中使用了这个点代码:

代码语言:javascript
复制
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代码如下:

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

输出如下:Link

为什么树的格式如此错误?有没有可能让Tree从左到右显示?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-14 09:26:01

你必须“询问”graphviz (任何工具,“点”,"neato"...)格式化图形,然后才能在GrappaPanel中显示它(以一种吸引人的方式)。在构建GrappaPanel之前,您需要执行以下操作:

代码语言:javascript
复制
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中的" graph“是您的图形。之后,您的图形格式正确,您可以使用GrappaPanel查看它。结果将比您在链接中发布的内容更令人愉快。

希望这能有所帮助,致敬。

PS:为了让上面的代码工作,您必须在路径中有“点”(或您使用的任何其他格式化程序),否则您需要给它提供可执行文件的完整路径。

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

https://stackoverflow.com/questions/7217288

复制
相关文章

相似问题

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