Is this what you are after? (I’m not sure what “automatic fixed legend size” means)
digraph LL {
graph [labelloc=t, label=<
<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4" VALIGN="TOP" HEIGHT="2.0">
<TR>
<TD COLSPAN="99"><B>Device Gen Info</B></TD>
</TR>
<TR>
<TD> <FONT POINT-SIZE="10.0">Gen5</FONT> </TD>
<TD>Gen4</TD>
<TD>Gen3</TD>
<TD>Gen2</TD>
<TD>Default</TD>
<TD>Timed Out</TD>
<TD>Access Point</TD>
<TD>Relay</TD>
<TD>Bridge</TD>
<TD>High Priority Access Point</TD>
<TD>High Priority End Point</TD>
<TD>High Priority Relay</TD>
<TD>NIC</TD>
<TD>LCS</TD>
<TD>STL</TD>
<TD>IOTR</TD>
<TD>Default</TD>
<TD>Timed Out</TD>
</TR>
<TR>
<TD BGCOLOR="ORANGE"> </TD>
<TD BGCOLOR="GREEN"></TD>
<TD BGCOLOR="YELLOW"></TD>
<TD BGCOLOR="BROWN"></TD>
<TD BGCOLOR="VIOLET"></TD>
<TD BGCOLOR="RED"></TD>
<TD>Triangle</TD>
<TD>Parallelogram</TD>
<TD>Diamond</TD>
<TD>DoubleCircle</TD>
<TD>Trippleoctagon</TD>
<TD>House</TD>
<TD>Pentagon</TD>
<TD>Trapezium</TD>
<TD>Star</TD>
<TD>Circle</TD>
<TD>Rectangle</TD>
<TD>Septagon</TD>
</TR>
</TABLE>>]
// add a cluster to create margin between legend & actual graph
subgraph clusterAll{
graph[label="" peripheries=0] // do not duplicate graph legend
a ->b ->c
}
}
Giving:
p.s. more on Legends: Adding key or legend?
p.p.s. You can replace your textual descriptions (e.g. House) with images
<TD><IMG SCALE="TRUE" SRC="image_dir/noLeft.png"/></TD>