2011-04-05 55 views
1

我需要創建一個表示可擴展哈希結構的圖。到目前爲止,我在graphviz中創建圖形方面取得了成功(使用點工具)...但是,我無法制作頂級標籤來表示每個存儲桶的位數......我想要做的事情與此類似:使用graphviz創建節點的頂部標籤(點)

Extendable hashing table on wikipedia

我沒辦法去完成是小2和1的代表位..任何人能解釋我怎麼會到處去這樣做呢?

My圖表到目前爲止是這樣的:

digraph G { 
nodesep = 0.5; 
rankdir = LR; 
node [shape=record]; 

node0[label = "<f0>0 | <f1>1"]; 
node1[label = "0010 | |", toplabel="1"]; 

subgraph cluster_0 { 
    style=filled; 
    color=white; 
    node [style=filled,color=white]; 
    node0; 
    label = "i = 1"; 
} 

node0:f0->node1;} 

result

回答

1

您可以考慮使用HTML-Like labels如果你真的必須這樣做有graphviz的。

我重新從維基百科所提到的例子:

rankdir = LR; 
node [shape=none]; 
splines=false; 

n1[label=< 
<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4"> 
<TR> 
<TD CELLPADDING="2">2</TD> 
<TD BORDER="0"></TD> 
</TR> 
<TR><TD COLSPAN="2" PORT="port00"> 00 </TD></TR> 
<TR><TD COLSPAN="2" PORT="port01"> 01 </TD></TR> 
<TR><TD COLSPAN="2" PORT="port10"> 10 </TD></TR> 
<TR><TD COLSPAN="2" PORT="port11"> 11 </TD></TR> 
</TABLE>>]; 

a[label=< 
<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4"> 
<TR> 
<TD CELLPADDING="0" BORDER="0" COLSPAN="2"> 
    <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="2" FIXEDSIZE="TRUE" WIDTH="1" ALIGN="LEFT"><TR><TD>1</TD></TR></TABLE> 
</TD> 
</TR> 
<TR> 
<TD PORT="porta"> A </TD> 
<TD>k2</TD> 
</TR> 
</TABLE>>]; 

b[label=< 
<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4"> 
<TR> 
<TD CELLPADDING="2">2</TD> 
<TD BORDER="0" COLSPAN="2"></TD> 
</TR> 
<TR> 
<TD PORT="portb" COLSPAN="2"> B </TD> 
<TD>k1</TD> 
</TR> 
</TABLE>>]; 

c[label=< 
<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4"> 
<TR> 
<TD CELLPADDING="2">2</TD> 
<TD BORDER="0" COLSPAN="2"></TD> 
</TR> 
<TR> 
<TD PORT="portc" COLSPAN="2"> C </TD> 
<TD>k3</TD> 
</TR> 
</TABLE>>]; 

n1:port00 -> a:porta; 
n1:port01 -> a:porta; 
n1:port10 -> b:portb; 
n1:port11 -> c:portc; 

正如你看到的,代碼不漂亮......然而,結果接近:

http://graph.gafol.net/evEKgxwgj

graphviz output

請注意,用於演示目的的頂級標籤有變化 - 節點a使用嵌套表格。

+1

應該補充說graphviz開發者自己喜歡類似html的表格,而不是使用棄用的記錄API。 – 2015-11-02 23:51:41