Drawing graphs with dot
Emden Gansner and Eleftherios Koutsofios and Stephen North
January 26, 2006
Abstract
dot draws directed graphs as hierarchies. It runs as a command line pro-
gram, web visualization service, or with a compatible graphical interface.
Its features include well-tuned layout algorithms for placing nodes and edge
splines, edge labels, “record” shapes with “ports” for drawing data struc-
tures; cluster layouts; and an underlying file language for stream-oriented
graph tools. Below is a reduced module dependency graph of an SML-NJ
compiler that took 0.98 seconds of user time on a 1.4 Ghz AMD Athlon.
ContMap
FreeMap
Expand
CPSprint
Coder
BaseCoder
ErrorMsg
SparcInstr
GlobalFix
CPS
Hoist
SortedList Intset
CPSopt
Contract
Eta
Closure
Profile
List2
SparcAsCode SparcMCEmit
IEEEReal
SparcCM
CG
SparcMCode
ClosureCallee
Sort
SparcAsEmit
Spill
PrintUtil
CPSsize
Prim
SparcMC
CPScomp
Access
RealConst
SparcAC
Convert
CoreInfo Lambda
CPSgen
Strs
Signs
AbstractFct
ApplyFunctor
Overload
PrintType
Unify
Typecheck
PrintAbsyn
Stream
MLLexFun
Vector
Ascii
LrParserJoinWithArg
Join
MLLrValsFun
CoreLang
NewParse
Index
Misc
TyvarSet
Absyn
Types
Normalize
Modules
ConRep
Instantiate
LrTable Backpatch
PrimTypes PolyCont
Initial
Assembly Math Unsafe
Loader
CInterface CleanUp
CoreFunc
InLine
Fastlib
CoreDummy
Overloads MakeMos
Stamps
IntmapPersStamps
Pathnames
Symbol
Bigint
Dynamic
IntStrMap
ArrayExt
UnionfindSiblings
StrgHash
Env
BasicTypes
Tuples
ModuleUtil
EqTypes
Fixity
TypesUtil
Equal
Variables
BareAbsyn PrintBasics
PrintVal
PrintDec
SigMatch
IntSparcD
IntShare BatchRealDebug BogusDebug
UnixPaths Interact ModuleComp
Importer
IntSparcIntNullD
Linkage
Prof
IntNull
Interp
ProcessFile
FreeLvar LambdaOpt
Translate
OptReorder
CompSparc
MCopt
MCprint
Nonrec MC
InlineOps
Unboxed
1