使用graphviz twopi的控制布局
我试图用twopi绘制一个显示搜索前缀的图表。我有一个简单的输入文件,并得到以下输出: 以下是输入文件:使用graphviz twopi的控制布局,graph,graphviz,Graph,Graphviz,我试图用twopi绘制一个显示搜索前缀的图表。我有一个简单的输入文件,并得到以下输出: 以下是输入文件: digraph search { // ordering=out; // color=blue; // rank=same; // overlap=scale; rankdir=LR; root=root; ranksep=1.25; overlap=true; "root"; a [color=none,fontsize=12]; b [color=none,fontsi
digraph search {
// ordering=out;
// color=blue;
// rank=same;
// overlap=scale;
rankdir=LR;
root=root;
ranksep=1.25;
overlap=true;
"root";
a [color=none,fontsize=12];
b [color=none,fontsize=12];
c [color=none,fontsize=12];
d [color=none,fontsize=12];
e [color=none,fontsize=12];
f [color=none,fontsize=12];
#g [color=none,fontsize=12];
h [color=none,fontsize=12];
i [color=none,fontsize=12];
j [color=none,fontsize=12];
k [color=none,fontsize=12];
l [color=none,fontsize=12];
m [color=none,fontsize=12];
n [color=none,fontsize=12];
o [color=none,fontsize=12];
p [color=none,fontsize=12];
q [color=none,fontsize=12];
r [color=none,fontsize=12];
s [color=none,fontsize=12];
t [color=none,fontsize=12];
u [color=none,fontsize=12];
v [color=none,fontsize=12];
w [color=none,fontsize=12];
x [color=none,fontsize=12];
y [color=none,fontsize=12];
#ga [color=none,fontsize=12];
gb [color=none,fontsize=12];
gc [color=none,fontsize=12];
gd [color=none,fontsize=12];
ge [color=none,fontsize=12];
gf [color=none,fontsize=12];
gg [color=none,fontsize=12];
gh [color=none,fontsize=12];
gi [color=none,fontsize=12];
gj [color=none,fontsize=12];
gk [color=none,fontsize=12];
gl [color=none,fontsize=12];
gm [color=none,fontsize=12];
gn [color=none,fontsize=12];
go [color=none,fontsize=12];
gp [color=none,fontsize=12];
gq [color=none,fontsize=12];
gr [color=none,fontsize=12];
gs [color=none,fontsize=12];
gt [color=none,fontsize=12];
gu [color=none,fontsize=12];
gv [color=none,fontsize=12];
gw [color=none,fontsize=12];
gx [color=none,fontsize=12];
gy [color=none,fontsize=12];
gaa [color=none,fontsize=12];
gab [color=none,fontsize=12];
gac [color=none,fontsize=12];
gad [color=none,fontsize=12];
gae [color=none,fontsize=12];
gaf [color=none,fontsize=12];
gag [color=none,fontsize=12];
gah [color=none,fontsize=12];
gai [color=none,fontsize=12];
gaj [color=none,fontsize=12];
gak [color=none,fontsize=12];
gal [color=none,fontsize=12];
gam [color=none,fontsize=12];
gan [color=none,fontsize=12];
gao [color=none,fontsize=12];
gap [color=none,fontsize=12];
gaq [color=none,fontsize=12];
#gaz [color=none,fontsize=12];
gas [color=none,fontsize=12];
gat [color=none,fontsize=12];
gau [color=none,fontsize=12];
gav [color=none,fontsize=12];
gaw [color=none,fontsize=12];
gax [color=none,fontsize=12];
gay [color=none,fontsize=12];
gaza [color=none,fontsize=12];
gazb [color=none,fontsize=12];
gazc [color=none,fontsize=12];
gazd [color=none,fontsize=12];
gaze [color=none,fontsize=12];
#gazf [color=none,fontsize=12];
gazg [color=none,fontsize=12];
gazh [color=none,fontsize=12];
gazi [color=none,fontsize=12];
gazj [color=none,fontsize=12];
gazk [color=none,fontsize=12];
gazl [color=none,fontsize=12];
gazm [color=none,fontsize=12];
gazn [color=none,fontsize=12];
gazo [color=none,fontsize=12];
gazp [color=none,fontsize=12];
gazq [color=none,fontsize=12];
gazr [color=none,fontsize=12];
gazs [color=none,fontsize=12];
gazt [color=none,fontsize=12];
gazu [color=none,fontsize=12];
gazv [color=none,fontsize=12];
gazw [color=none,fontsize=12];
gazx [color=none,fontsize=12];
gazy [color=none,fontsize=12];
root -> a [minlen=2];
root -> b [minlen=2];
root -> c [minlen=2];
root -> d [minlen=2];
root -> e [minlen=2];
root -> f [minlen=2];
root -> g [minlen=2];
root -> h [minlen=2];
root -> i [minlen=2];
root -> j [minlen=2];
root -> k [minlen=2];
root -> l [minlen=2];
root -> m [minlen=2];
root -> n [minlen=2];
root -> o [minlen=2];
root -> p [minlen=2];
root -> q [minlen=2];
root -> r [minlen=2];
root -> s [minlen=20];
root -> t [minlen=2];
root -> u [minlen=2];
root -> v [minlen=2];
root -> w [minlen=2];
root -> x [minlen=2];
root -> y [minlen=2];
root -> 0 [minlen=2];
root -> 1 [minlen=2];
root -> 2 [minlen=2];
root -> 3 [minlen=2];
root -> 4 [minlen=2];
root -> 5 [minlen=2];
root -> 6 [minlen=2];
root -> 7 [minlen=2];
root -> 8 [minlen=2];
root -> 9 [minlen=2];
root -> "." [minlen=2];
g -> ga ;
g -> gb ;
g -> gc ;
g -> gd ;
g -> ge ;
g -> gf ;
g -> gg ;
g -> gh ;
g -> gi ;
g -> gj ;
g -> gk ;
g -> gl ;
g -> gm ;
g -> gn ;
g -> go ;
g -> gp ;
g -> gq ;
g -> gr ;
g -> gs ;
g -> gt ;
g -> gu ;
g -> gv ;
g -> gw ;
g -> gx ;
g -> gy ;
ga -> gaa ;
ga -> gab ;
ga -> gac ;
ga -> gad ;
ga -> gae ;
ga -> gaf ;
ga -> gag ;
ga -> gah ;
ga -> gai ;
ga -> gaj ;
ga -> gak ;
ga -> gal ;
ga -> gam ;
ga -> gan ;
ga -> gao ;
ga -> gap ;
ga -> gaq ;
ga -> gaz ;
ga -> gas ;
ga -> gat ;
ga -> gau ;
ga -> gav ;
ga -> gaw ;
ga -> gax ;
ga -> gay ;
gaz -> gaza ;
gaz -> gazb ;
gaz -> gazc ;
gaz -> gazd ;
gaz -> gaze ;
gaz -> gazf ;
gaz -> gazg ;
gaz -> gazh ;
gaz -> gazi ;
gaz -> gazj ;
gaz -> gazk ;
gaz -> gazl ;
gaz -> gazm ;
gaz -> gazn ;
gaz -> gazo ;
gaz -> gazp ;
gaz -> gazq ;
gaz -> gazr ;
gaz -> gazs ;
gaz -> gazt ;
gaz -> gazu ;
gaz -> gazv ;
gaz -> gazw ;
gaz -> gazx ;
gaz -> gazy ;
gazo -> "Blue Tuesday" ;
"Blue Tuesday" [ fontsize=10];
// Layout engines: circo dot fdp neato nop nop1 nop2 osage patchwork sfdp twopi
}
此输出由以下内容生成:
twopi -os1.png -Tpng s1.dot
我在这里发帖是因为打印出来的内容非常糟糕。所有悬挂在“gaz”上的节点重叠;我试图指定nodesep
,但它被忽略了。我希望看到从根到单个字母的行之间的距离更远,但我还是无法控制
这似乎是twopi中的一个bug。文件上说它应该明确遵循这些指令,但似乎没有
我的问题是:
谢谢。我发现twopi是所有graphviz布局引擎中最难使用的 我对你原来的点文件做了一些小改动。渲染图如下所示 以下是区别: 图形属性:
- size=“7.75,10.25”;//确保 整个图形适合单个8.5 x 11页
- 方向=“景观”
- ranksep=3.0;nodesep=2.0
- 删除:“根=根”;和 “重叠=真”
- 我将边权重设置为0.1 对于所有边:[重量=0.1]
将所有边的边权重减少90%会产生增加边长度的净效果(或者更准确地说,放松对边长度的约束);显然,这有助于节点“扇出”。这样做还会增加“g”和“root”之间的距离,从而为“root”的子节点提供更多的空间 我还调整了一些纯粹的美学属性——对布局没有任何影响,但在我看来,当你需要在单个页面上绘制中等密度的图形时,这似乎很重要: 图形属性: fontname=“Helvetica”; 字体大小=13 节点属性: “根”[color=“goldenrod4”、shape=“diamond”、style=“filled”] “g”[color=“lightsteelblue2”,shape=“diamond”,style=“filled”] “ga”[color=“darkorange”、shape=“diamond”、style=“filled”] “gaz”[color=“bisque4”、shape=“diamond”、style=“filled”] 边缘属性: [箭头大小=0.4,笔宽=1.2]
谢谢。twopi显然是有缺陷的。如果还有别的选择,我会同意的。有什么建议吗?嗯……我不会想到用twopi来绘制这种图形,但看过之后,我认为你的想法是对的。FWIW,对于类似于您的graph的东西,我的第一个想法是使用“circo”引擎(graphviz系列中也应包含在您的构建中)。我尝试了
circo
,但对结果不满意。但是谢谢!我真正想要的是文本更大。你知道有什么办法吗?我应该能读懂它。唉。我试着让它工作了一段时间,断断续续,但我似乎无法让circo给我更大的文本…@isme,很高兴听到(我认为circo在最小化边缘交叉方面做得非常好,因为它在圆的周长上放置了尽可能多的节点)。没什么大不了的,但如果你想“+1”这个答案,它不会显示在我的报告或摘要中。