I have a simple .dot file (graphviz), see below:
digraph Mapper{
Mapper [label=Mapper];
General [label=General];
GeneralNew [label=New];
GeneralOpen [label=Open];
GeneralSave [label=Save];
GeneralClose [label=Close];
GeneralSettings [label=Settings];
GeneralHelp [label=Help];
GeneralAbout [label=About];
GeneralNewLoad [label="Load symbol set"];
GeneralNewLoadFile [label="Load symbol set from file"];
GeneralNewNoLoad [label="Don't load symbols"];
GeneralOpenFiles [label="OCD|OMAP", shape=record];
GeneralOpenRecent [label="Open recent"];
GeneralSaveFiles [label="OMAP|MapperXML", shape=record];
GeneralHelpStartup [label="Startup tips"];
GeneralHelpHTML [label="HTML Help"];
GeneralHelpWhatsThis [label="What's this?"];
General -> GeneralNew;
General -> GeneralOpen;
General -> GeneralSave;
General -> GeneralClose;
General -> GeneralSettings;
General -> GeneralHelp;
General -> GeneralAbout;
GeneralNew -> GeneralNewLoad;
GeneralNew -> GeneralNewLoadFile;
GeneralNew -> GeneralNewNoLoad;
GeneralOpen -> GeneralOpenFiles;
GeneralOpen -> GeneralOpenRecent;
GeneralSave -> GeneralSaveFiles;
GeneralHelp -> GeneralHelpStartup;
GeneralHelp -> GeneralHelpHTML;
GeneralHelp -> GeneralHelpWhatsThis;
Mapper -> General;
Map [label=Map];
MapImport [label=Import];
MapPrint [label=Print];
MapEditor [label=Editor];
MapChangeCoordinate [label="Change coordinate system"];
MapChangeScale [label="Change scale"];
MapAddNotes [label="Add notes"];
MapImportFiles [label="DXF|GPX", shape=record];
MapEditorUndo [label=Undo];
MapEditorRedo [label=Redo];
MapEditorTools [label=Tools];
MapEditorSelectObjectsWithSymbol [label="Select all objects with symbol..."];
MapEditorTools [label=Tools];
MapEditorToolsEdit [label="Edit|Duplicate|Switch symbol|Switch direction|Connect|Rotate", shape=record, style=rounded];
MapEditorToolsBasic [label="Point|Straight Line|Bezier|Circle|Rectangle|<text> Text", shape=record, style=rounded];
MapEditorToolsAdvanced [label="Fill|Create border|Cut object|Measure", shape=record, style=rounded];
MapEditorToolsArea [label="Area difference|Area XOr|Unify areas|Intersect areas", shape=record, style=rounded];
MapEditorToolsCutArea [label="Cut hole"];
MapEditorToolsCutAreas [label="Circle|Rectangle|Free", shape=record, style=rounded];
MapEditorToolsTextAlignment [label="Text alignment"];
Map -> MapImport;
Map -> MapPrint;
Map -> MapEditor;
Map -> MapChangeCoordinate;
Map -> MapChangeScale;
Map -> MapAddNotes;
MapImport -> MapImportFiles;
MapEditor -> MapEditorUndo;
MapEditor -> MapEditorRedo;
MapEditor -> MapEditorTools;
MapEditor -> MapEditorSelectObjectsWithSymbol;
MapEditorTools -> MapEditorToolsEdit;
MapEditorTools -> MapEditorToolsBasic;
MapEditorTools -> MapEditorToolsAdvanced;
MapEditorTools -> MapEditorToolsArea;
MapEditorTools -> MapEditorToolsCutArea;
MapEditorToolsBasic:text -> MapEditorToolsTextAlignment;
MapEditorToolsCutArea -> MapEditorToolsCutAreas;
Mapper -> Map;
View [label=View];
ViewZoom [label="Zoom"];
ViewCoordinate [label="Coordinate display"];
ViewFullscreen [label="Fullscreen"];
ViewZoomIn [label="Zoom in"];
ViewZoomOut [label="Zoom out"];
ViewZoomWhole [label="Show whole map"];
ViewZoomCustom [label="Custom zoom factor"];
ViewCoordinateSystems [label="Map|Local|Degrees|DMS", shape=record];
View -> ViewZoom;
View -> ViewCoordinate;
View -> ViewFullscreen;
ViewZoom -> ViewZoomIn;
ViewZoom -> ViewZoomOut;
ViewZoom -> ViewZoomWhole;
ViewZoom -> ViewZoomCustom;
ViewCoordinate -> ViewCoordinateSystems;
Mapper -> View;
Symbols [label="Symbols"];
SymbolsNew [label=New];
SymbolsEdit [label=Edit];
SymbolsDuplicate [label=Duplicate];
SymbolsDelete [label=Delete];
SymbolsScale [label="Scale"];
SymbolsHide [label="Hide objects with symbol..."];
SymbolsProtect [label="Protect objects with symbol..."];
SymbolsSelectAll [label="Select all symbols"];
SymbolsInvertSelect [label="Invert symbol selection"];
SymbolsColors [label="Colors"];
SymbolsColorsNew [label=New];
SymbolsColorsDelete [label=Delete];
SymbolsColorsDuplicate [label=Duplicate];
SymbolsColorsOrder [label="Change order"];
Symbols -> SymbolsNew;
Symbols -> SymbolsEdit;
Symbols -> SymbolsDuplicate;
Symbols -> SymbolsDelete;
Symbols -> SymbolsScale;
Symbols -> SymbolsHide;
Symbols -> SymbolsProtect;
Symbols -> SymbolsSelectAll;
Symbols -> SymbolsInvertSelect;
Symbols -> SymbolsColors;
SymbolsColors -> SymbolsColorsNew;
SymbolsColors -> SymbolsColorsDelete;
SymbolsColors -> SymbolsColorsDuplicate;
SymbolsColors -> SymbolsColorsOrder;
Mapper -> Symbols;
Templates [label="Templates"];
TemplatesOpen [label=Open];
TemplatesOrder [label="Change order"];
TemplatesOpenFiles [label="Images|GPX|DXF|OCD|OMAP", shape=record];
TemplatesPaint [label="Paint on template"];
TemplatesOpacity [label="Opacity"];
TemplatesMove [label="Move"];
TemplatesAdjust [label="Adjust"];
TemplatesRotation [label="Rotation"];
Templates -> TemplatesOpen;
Templates -> TemplatesPaint;
Templates -> TemplatesOrder;
Templates -> TemplatesOpacity;
Templates -> TemplatesMove;
Templates -> TemplatesAdjust;
Templates -> TemplatesRotation;
TemplatesOpen -> TemplatesOpenFiles;
Mapper -> Templates;
}
I'm using the following command to generate the graph:
cat mapper.dot | circo -Tpng >output.png
Where mapper.dot is a file with the above content.
The problem is that there is way to much space between the nodes. And I mean way to much. Is there some way to decrease the space?
Judging by the output from your dot
file, I'm not sure whether circo
is the way to go. Personally I would use sfdp
instead.
If I remove your uuoc and create the image with the following command:
sfdp -Tpng -Goverlap=false -o output.png mapper.dot
You will get shorter edges with no node overlap, but on the other hand, edges will overlap with nodes. To get away from this, you could enable splines by adding
-Gsplines=true
to the command.
The output is nowhere near perfect, but to me it looks a bit more appealing than before.