I want a program which allows to edit a directed graph (with textual labels at each node).

A must is that the program automatically places the nodes of the graph on the screen in such a way to minimize (as much as reasonable) intersections between arrows, and to make the graph look nice.

The reason I need this is that I want to draw a graph of program modules which use submodules, subsubmodules, etc., mainly to know which modules are used (directly or indirectly) by the "main" module. There may be cycles in dependencies.

Currently I use LibreOffice Writer and to make the graph I use itemized lists (with sublists). I just omit items which were already met above in the lists. To omit some items partially solves my problem, but to have a full-blown directed graph would be better.

I am a Debian Linux user.

  • Do you want the "editor part" to be a GUI solution – or would you also be fine with a text-driven solution (eg. A -> B)? In the latter case, Graphviz might be worth a look (should be in the standard repo, btw).
    – Izzy
    Commented Jul 27, 2017 at 15:39
  • @Izzy I want GUI only
    – porton
    Commented Jul 27, 2017 at 15:42
  • I asked another version of this question: softwarerecs.stackexchange.com/q/44880/3525 - now I want a digraph editor which can be used without visualizing the entire graph (because no software does it in good way)
    – porton
    Commented Aug 3, 2017 at 13:58

1 Answer 1


You can use the DOT language to specify your graph and the process it with the GraphViz tool chain or some of the many alternatives.

Note that the DOT language definitions can be produced either manually, via a GUI editor, such as DotEdit or by parsing the source code with tools such as DoxyGen or Sphinx-Doc.

DOT Language example - Simple Directed Graph:

digraph graphname {
     a -> b -> c;
     b -> d;

enter image description here

Each node and line can be specified with characteristics such as label, shape, color, style, etc. and the layout is largely automatic aiming to minimise crossings, etc.

GraphViz is:

  • Free, gratis & open source
  • Cross Platform, Windows, OS-X & Linux
  • Still being maintained after 26 years
  • Also available as online variants
  • Capable of generating huge diagrams, (I personally have encountered graphs with over 200 nodes and 3000 edges).

DotEdit is:

  • Free, Gratis & Open Source
  • Cross Platform, Windows, OS-X & Linux
  • Requires GraphViz be installed.

Screenshots (from the website)

enter image description here

enter image description here

  • I cannot install DotEditor because github.com/vincenthEE/DotEditor/issues/16
    – porton
    Commented Jul 27, 2017 at 17:09
  • dot (and neato, circo, etc.) produced graphs are unacceptably bad. I have no other choice as the tradeoff to use LibreOffice with bulleted lists with sublists (even though this "solution" requires to remove all cycles)
    – porton
    Commented Jul 28, 2017 at 12:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.