Possibilities:
- Place each molecule in its own cluster, and use cluster labels for the text (text outside molecule). Easy, but not packed as densely. (p.s. possibly set peripheries=0)
- Text on-top-of molecule. Here pinned nodes will work.
- put each molecule in its own subgraph (not cluster, though cluster also works)
- add desired text to subgraph with “fake” attribute name
{graph [mytext="read me"] ...}
- run through neato with output format = dot. This effectively pins all nodes and edges.
- postprocess to determine center of each molecule (of all nodes within a subgraph)
- create new node for each subgraph centered with label=mytext and style=plaintext
- run through
neato -n2
- OK not trivial, but not that hard. Though text-over-molecule might not be readable
- Use the tooltip attribute to place your text. Only helps if the user knows about it. Does not support (visual) search.
- “Inside”, hmmm. I don’t know a way to find an inside of a graph - unless circo or twopi are used. I need help on this one.