Я пытаюсь нарисовать график, показывающий префиксы поиска, используя twopi. У меня есть простой входной файл, и я получаю этот вывод:
alt text http://www.freeimagehosting.net/uploads/th.ac6cd51528.png (полное изображение)
Вот входной файл:
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
Я публикую здесь, потому что распечатка довольно ужасна. Все узлы, висящие на "газе", перекрываются; Я попытался указать nodesep
, и он просто игнорируется. Я хотел бы видеть строки от корня до одиночных букв дальше друг от друга, но опять же, я не могу этого контролировать.
Кажется, это ошибка в twopi. В документации говорится, что он должен четко следовать этим директивам, но это не похоже.
Мои вопросы:
- Есть ли способ заставить twopi вести себя?
- В противном случае, есть ли лучший механизм компоновки для использования?
Спасибо.