2009-04-17 7 views
6

Я использую Graphviz для рисования решетки.
Узлы представляют собой набор чисел.Как наложить позицию y на узел при использовании graphviz для рисования решеток?

Будучи решеткой, я хотел бы, чтобы позиция по высоте (y) узла представляла число элементов в наборе, представленном узлом. Затем положение x должно быть определено graphviz, чтобы сделать представление более чистым.

Возможно ли это?

В соответствии с документацией по точкам должен быть атрибут pos, который должен определять положение узла. Но хотя я много раз пробовал разными способами, я не мог получить никакого графика, где была определена позиция узла. Кто-нибудь имел успех в этом?

Ниже классический файл дот я использую:

digraph G { 
"528 544\n640 768" -> "768 528"; 
"528 536\n530 539" -> "539"; 
"528 536\n530 539" -> "528"; 
"800 896 548\n944 566 728\n539 704 768" -> "704 768\n539 548"; 
"800 896 548\n944 566 728\n539 704 768" -> "944 728\n539 566"; 
"800 896 548\n944 566 728\n539 704 768" -> "944 800\n896 768"; 
"768 539" -> "768"; 
"768 539" -> "539"; 
"768" -> "∅"; 
"944" -> "∅"; 
"944 528 536\n530 566 560\n728 656 539" -> "528 536\n530 539"; 
"944 528 536\n530 566 560\n728 656 539" -> "944 728\n539 566"; 
"944 528 536\n530 566 560\n728 656 539" -> "944 656\n528 560"; 
"704 768\n539 548" -> "768 539"; 
"944 728\n539 566" -> "944"; 
"944 728\n539 566" -> "539"; 
"800 896 640\n944 560 528\n544 656 768" -> "528 544\n640 768"; 
"800 896 640\n944 560 528\n544 656 768" -> "944 656\n528 560"; 
"800 896 640\n944 560 528\n544 656 768" -> "944 800\n896 768"; 
"539" -> "∅"; 
"944 656\n528 560" -> "944"; 
"944 656\n528 560" -> "528"; 
"896 640 656 536\n530 728 539 704\n768 800 544 528\n548 944 566 560" -> "800 896 548\n944 566 728\n539 704 768"; 
"896 640 656 536\n530 728 539 704\n768 800 544 528\n548 944 566 560" -> "944 528 536\n530 566 560\n728 656 539"; 
"896 640 656 536\n530 728 539 704\n768 800 544 528\n548 944 566 560" -> "800 896 640\n944 560 528\n544 656 768"; 
"896 640 656 536\n530 728 539 704\n768 800 544 528\n548 944 566 560" -> "768 704 548\n528 530 544\n536 640 539"; 
"768 528" -> "768"; 
"768 528" -> "528"; 
"528" -> "∅"; 
"768 704 548\n528 530 544\n536 640 539" -> "528 544\n640 768"; 
"768 704 548\n528 530 544\n536 640 539" -> "704 768\n539 548"; 
"768 704 548\n528 530 544\n536 640 539" -> "768 528 530\n539 536"; 
"944 800\n896 768" -> "768"; 
"944 800\n896 768" -> "944"; 
"768 528 530\n539 536" -> "528 536\n530 539"; 
"768 528 530\n539 536" -> "768 539"; 
"768 528 530\n539 536" -> "768 528"; 
} 

Если кто-то может написать пример файла, в котором высота одного узла был определен я был бы очень благодарен.

ответ

7

Я нашел ответ.

Здесь: http://www.linuxdevcenter.com/pub/a/linux/2004/05/06/graphviz_dot.html?page=2

По существу, можно определить, какие наборы узлов должны быть в то же Hight. Чтобы получить узлы A и B в одной и той же области, мне нужно добавить строку: {rank = same; A B};

Так вот подобный пример, как один и раньше, но с узлами, установленными прямо:

digraph G { 
{rank=same; "768" "944" "539" "528" }; 
{rank=same; "768 539" "768 528" }; 
{rank=same; "768 640\n528 544" "528 536\n530 539" "768 704\n539 548" "944 728\n539 566" "944 656\n528 560" "944 800\n896 768" }; 
{rank=same; "800 896 548\n944 566 728\n539 704 768" "528 944 536\n530 566 560\n728 656 539" "800 896 944\n656 560 528\n544 640 768" "768 640 548\n528 530 544\n536 539 704" }; 
"768 640\n528 544" -> "768 528"; 
"528 536\n530 539" -> "539"; 
"528 536\n530 539" -> "528"; 
"800 896 548\n944 566 728\n539 704 768" -> "768 704\n539 548"; 
"800 896 548\n944 566 728\n539 704 768" -> "944 728\n539 566"; 
"800 896 548\n944 566 728\n539 704 768" -> "944 800\n896 768"; 
"768 539" -> "768"; 
"768 539" -> "539"; 
"768" -> "∅"; 
"944" -> "∅"; 
"528 944 536\n530 566 560\n728 656 539" -> "528 536\n530 539"; 
"528 944 536\n530 566 560\n728 656 539" -> "944 728\n539 566"; 
"528 944 536\n530 566 560\n728 656 539" -> "944 656\n528 560"; 
"768 704\n539 548" -> "768 539"; 
"944 728\n539 566" -> "944"; 
"944 728\n539 566" -> "539"; 
"800 896 944\n656 560 528\n544 640 768" -> "768 640\n528 544"; 
"800 896 944\n656 560 528\n544 640 768" -> "944 656\n528 560"; 
"800 896 944\n656 560 528\n544 640 768" -> "944 800\n896 768"; 
"539" -> "∅"; 
"944 656\n528 560" -> "944"; 
"944 656\n528 560" -> "528"; 
"896 640 656 536\n530 728 539 704\n768 800 544 528\n548 944 566 560" -> "800 896 548\n944 566 728\n539 704 768"; 
"896 640 656 536\n530 728 539 704\n768 800 544 528\n548 944 566 560" -> "528 944 536\n530 566 560\n728 656 539"; 
"896 640 656 536\n530 728 539 704\n768 800 544 528\n548 944 566 560" -> "800 896 944\n656 560 528\n544 640 768"; 
"896 640 656 536\n530 728 539 704\n768 800 544 528\n548 944 566 560" -> "768 640 548\n528 530 544\n536 539 704"; 
"768 528" -> "768"; 
"768 528" -> "528"; 
"528" -> "∅"; 
"768 640 548\n528 530 544\n536 539 704" -> "768 640\n528 544"; 
"768 640 548\n528 530 544\n536 539 704" -> "768 704\n539 548"; 
"768 640 548\n528 530 544\n536 539 704" -> "528 768 530\n539 536"; 
"944 800\n896 768" -> "768"; 
"944 800\n896 768" -> "944"; 
"528 768 530\n539 536" -> "528 536\n530 539"; 
"528 768 530\n539 536" -> "768 539"; 
"528 768 530\n539 536" -> "768 528"; 
} 
+0

+1, Ран его, и он работал на меня. Мне нравится Graphviz для быстрого создания диаграмм состояния. –

 Смежные вопросы

  • Нет связанных вопросов^_^