2009-04-17 57 views
6

我正在使用Graphviz繪製一個格子。
節點是一組數字。作爲一個點陣,我想要一個節點的高度位置(y)來表示節點表示的集合中元素的數量。然後,x位置應由graphviz定義,以使表示更清晰。使用graphviz繪製晶格時,我如何在節點上施加y位置?

可能嗎?

根據點文檔應該有屬性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以快速生成狀態圖。 – 2009-04-18 00:22:08