<p>Suresh recommended "Tikz/PGF" for LaTeX. In addition, for drawing graphs and the like, I recommend the following packages:</p>

<p><a href="http://www.altermundus.fr/pages/graph.html" rel="nofollow">tkz-graph</a></p>

<p><a href="http://www.altermundus.fr/pages/graphtheory.html" rel="nofollow">tkz-berge</a></p>

<p><a href="http://www.altermundus.fr/pages/tab.html" rel="nofollow">tkz-tab</a></p>

<p>For a sample usage, see the <a href="http://altermundus.fr/downloads/documents/NamedGraphs.pdf" rel="nofollow">gallery of named graphs</a>.</p>

<p>See also other pages on <a href="http://www.altermundus.fr" rel="nofollow">http://www.altermundus.fr</a>.
(They are mostly in French, yet you can figure out the meaning using Google Translator.)</p>

CC BY-SA 3.0
2014-05-21T17:36:30.957Z
I know I'm 3+ years out of date, but the link to the gallery above is broken.
Xynariz
CC BY-SA 3.0
2014-05-23T07:28:49.267Z
@Xynariz: Thanks for notifying me! I corrected the link.
Sadeq Dousti
CC BY-SA 2.5
2010-10-28T14:55:29.927Z
That gallery is beautiful!
Aaron Sterling
CC BY-SA 3.0
2010-09-26T11:29:08.217Z
2014-05-23T07:28:15.853Z
2014-05-23T07:28:15.853Z
Sadeq Dousti
<p>Suresh mentions OmniGraffle and Ross mentions Graphviz.</p>

<p>Actually, OmniGraffle <em>is</em> Graphviz with a GUI (and much more). You can draw a graph (or import it from a file), then use a Graphiz-based layout engine to automatically layout the graph. You can tweak the parameters of the layout engine, and finally you can switch off automatic layout and fine-tune the placement of the nodes manually.</p>

<p>That said, I still tend to use Xfig for most illustrations in my papers... The possibility to embed arbitrary Latex code in your illustrations is often essential, and that's exactly where Xfig excels (at least until you need to deal with publishers who expect self-contained EPS files).</p>

CC BY-SA 2.5
2010-09-29T08:31:56.427Z
You should try TikZ. Sounds like you'd like it. :)
Radu GRIGore
CC BY-SA 2.5
2010-09-30T21:31:26.733Z
@Radu: I have tried it. At some point I had to start compiling my Latex code on a remote machine, as my desktop computer was far too slow, and even then it was a pain. TikZ might be fine if your illustrations are small (in particular, not computer-generated), or if you are willing to compile your figures and your main document separately.
Jukka Suomela
CC BY-SA 2.5
2010-10-01T12:06:25.180Z
Ah, yes, I had that problem once. I put the generated part in a separate file and commented out the \include/\input line while drafting. I agree that it can be annoying if you have such figures often.
Radu GRIGore
CC BY-SA 2.5
2010-09-26T08:52:43.623Z
2010-09-26T08:52:43.623Z
Jukka Suomela
<p>I want to add <a href="http://asymptote.sourceforge.net/">Asymptote</a> to those mentioned by others.</p>

<p>The Wikipedia <a href="http://en.wikipedia.org/wiki/Asymptote_%28vector_graphics_language%29">page</a> for Asymptote.</p>

CC BY-SA 2.5
2010-09-26T10:14:58.280Z
2010-09-26T10:14:58.280Z
Kaveh
<p>Since some have mentioned Graphviz, there is also <a href="http://www.fauskes.net/code/dot2tex/" rel="nofollow">dot2tex</a> which converts Graphviz code into TikZ. This makes  using it within LaTeX (have mathematical expressions in labels etc.) and fine-tuning the appearance of the graph easier. You can even embed the Graphviz code directly in the TeX code (in a dot2tex environment) and have it run Graphviz automatically.</p>

CC BY-SA 2.5
2010-09-26T09:57:07.373Z
2010-09-26T09:57:07.373Z
DaniCL
<p>Apart from TikZ and graphviz I have made good use of my graphics tablet. You can get the new small Wacom Bamboo for 50€ (used) to 100€ (new). With a tablet you can create quite good looking images quickly; for anything but journal/conference/book publications -- depending on your skill, even then -- the results are very presentable.</p>

<p>You can, of course, use any graphics program. I have found <a href="http://creately.com/" rel="nofollow">Creately</a> and <a href="http://dabbleboard.com/draw" rel="nofollow">Dabbleboard</a> very useful for graphs and the like.</p>

CC BY-SA 2.5
2010-09-29T13:05:05.063Z
2010-09-29T13:05:05.063Z
Raphael
<p>For simple drawings I prefer <a href="http://www.yworks.com/en/products_yed_about.html" rel="nofollow">yEd</a>. It can be launched straight from the browser.</p>

CC BY-SA 2.5
2010-09-26T09:26:23.753Z
2010-09-26T09:26:23.753Z
Tomer Vromen
<p>You might take a look at <a href="https://gephi.org/screenshots/" rel="nofollow">GePhi</a>.</p>

CC BY-SA 3.0
2012-11-07T12:48:43.223Z
2012-11-07T12:48:43.223Z
Giorgio Camerani
<p>If you require some geometry, you could try <a href="http://zirkel.sourceforge.net/doc_en/index.html" rel="nofollow">C.a.R.</a> or its offspring <a href="http://db-maths.nuxit.net/CaRMetal/index_en.html" rel="nofollow">CaRMetal</a>.</p>

CC BY-SA 2.5
2010-09-28T15:31:21.110Z
2010-09-28T17:05:15.643Z
2010-09-28T17:05:15.643Z
RJK
<p>The MO thread Per links to is pretty good, and t<a href="https://tex.stackexchange.com/questions/1282/what-do-people-use-for-modifying-figures">his thread on tex.SE</a> is also handy. The main tools that I've used:</p>

<ul>
<li><a href="http://www.google.com/url?sa=t&amp;source=web&amp;cd=4&amp;ved=0CCcQFjAD&amp;url=http%3A%2F%2Fwww.texample.net%2Ftikz%2Fexamples%2F&amp;rct=j&amp;q=tikz%20pgf&amp;ei=_OOeTN62HMrVngfsjJGjDQ&amp;usg=AFQjCNHYwa-5VCDCNbFlPLyxbNU_JJA1qQ&amp;sig2=N0gpOwiiigHXtRZpgjI8-g&amp;cad=rja" rel="nofollow noreferrer">TIkz/PGF</a></li>
<li><a href="http://ipe7.sourceforge.net/" rel="nofollow noreferrer">Ipe</a></li>
<li><a href="http://inkscape.org/" rel="nofollow noreferrer">Inkscape</a>/Illustrator</li>
</ul>

<p>I know that Mac folks swear by Omnigraffle, but I have zero experience with it myself. The main criteria for me are:</p>

<ul>
<li>Generating PDF</li>
<li>Integrating LaTeX (with source styles for bonus points)</li>
<li>Being able to do color/shading etc easily. (Ipe 7 fails on that count)</li>
</ul>

CC BY-SA 2.5
2010-09-26T08:50:33.597Z
You can also export SVGs to TikZ snippets in Inkscape, which is very useful when you want to integrate freeform vector drawings into your TikZ diagrams.
Per Vognsen
CC BY-SA 2.5
2010-09-28T03:05:53.293Z
the export procedure isn't complete though: no gradients etc from what I understand.
Suresh Venkat
CC BY-SA 2.5
2010-09-26T06:12:06.080Z
2010-09-26T06:12:06.080Z
2017-04-13T12:36:12.330Z
Suresh Venkat
<p>When putting together results, it's often desirable to have some professional looking diagrams, rather than diagrams put together in MS Paint.  What is the standard for drawing data structures?</p>

CC BY-SA 2.5
2010-09-26T05:57:24.290Z
I'm not sure if this is considered on-topic (the FAQ gives little guidance). You may find this [MO thread](http://mathoverflow.net/questions/15664/what-is-the-best-graph-editor-to-use-in-your-articles) of relevance.
Per Vognsen
CC BY-SA 2.5
2010-09-26T06:06:52.870Z
It's definitely a soft question, but right on the border. Maybe CW ?
Suresh Venkat
CC BY-SA 2.5
2010-09-26T07:06:59.043Z
Suresh's answer is really good. Graphviz is also a nice tool, although harder to link into papers.
Ross Snider
CC BY-SA 2.5
2010-09-26T10:02:05.443Z
IMO, completely on-topic, but I personally won't vote up as I think it should be CW.
Kaveh
CC BY-SA 2.5
2010-09-26T14:38:26.883Z
I think it's on topic, but should be CW, since people are going to upvote answers to indicate that they like a particular package, and these votes should not go to the person who happened to post that package.
Robin Kothari
<soft-question><ds.data-structures><software><graph-drawing><writing>
What is the recommended software for drawing data structures such as graphs and trees?
Chris
# What is the recommended software for drawing data structures such as graphs and trees?

(Asked by: username_0 on 2010-09-26)

When putting together results, it's often desirable to have some professional looking diagrams, rather than diagrams put together in MS Paint. What is the standard for drawing data structures?

**Tags:** soft-question, ds.data-structures, software, graph-drawing, writing

> **Comments:**
> **username_1**: I'm not sure if this is considered on-topic (the FAQ gives little guidance). You may find this [MO thread](http://mathoverflow.net/questions/15664/what-is-the-best-graph-editor-to-use-in-your-articles) of relevance.  
> **username_2**: It's definitely a soft question, but right on the border. Maybe CW ?  
> **username_3**: Suresh's answer is really good. Graphviz is also a nice tool, although harder to link into papers.  
> **username_4**: IMO, completely on-topic, but I personally won't vote up as I think it should be CW.  
> **username_5**: I think it's on topic, but should be CW, since people are going to upvote answers to indicate that they like a particular package, and these votes should not go to the person who happened to post that package.  

---

## 9 answers

### Answer by username_2 on 2010-09-26. Score: 19 | Accepted answer

The MO thread Per links to is pretty good, and t[his thread on tex.SE](https://tex.stackexchange.com/questions/1282/what-do-people-use-for-modifying-figures) is also handy. The main tools that I've used:

* [TIkz/PGF](http://www.google.com/url?sa=t&source=web&cd=4&ved=0CCcQFjAD&url=http%3A%2F%2Fwww.texample.net%2Ftikz%2Fexamples%2F&rct=j&q=tikz%20pgf&ei=_OOeTN62HMrVngfsjJGjDQ&usg=AFQjCNHYwa-5VCDCNbFlPLyxbNU_JJA1qQ&sig2=N0gpOwiiigHXtRZpgjI8-g&cad=rja)
* [Ipe](http://ipe7.sourceforge.net/)
* [Inkscape](http://inkscape.org/)/Illustrator

I know that Mac folks swear by Omnigraffle, but I have zero experience with it myself. The main criteria for me are:

* Generating PDF
* Integrating LaTeX (with source styles for bonus points)
* Being able to do color/shading etc easily. (Ipe 7 fails on that count)

> **Comments:**
> **username_1**: You can also export SVGs to TikZ snippets in Inkscape, which is very useful when you want to integrate freeform vector drawings into your TikZ diagrams.  
> **username_2**: the export procedure isn't complete though: no gradients etc from what I understand.  

---

### Answer by username_6 on 2010-09-26. Score: 12

Suresh recommended "Tikz/PGF" for LaTeX. In addition, for drawing graphs and the like, I recommend the following packages:

[tkz-graph](http://www.altermundus.fr/pages/graph.html)

[tkz-berge](http://www.altermundus.fr/pages/graphtheory.html)

[tkz-tab](http://www.altermundus.fr/pages/tab.html)

For a sample usage, see the [gallery of named graphs](http://altermundus.fr/downloads/documents/NamedGraphs.pdf).

See also other pages on <http://www.altermundus.fr>.
(They are mostly in French, yet you can figure out the meaning using Google Translator.)

> **Comments:**
> **username_8**: That gallery is beautiful!  
> **username_7**: I know I'm 3+ years out of date, but the link to the gallery above is broken.  
> **username_6**: @username_7: Thanks for notifying me! I corrected the link.  

---

### Answer by username_9 on 2010-09-26. Score: 6

Suresh mentions OmniGraffle and Ross mentions Graphviz.

Actually, OmniGraffle *is* Graphviz with a GUI (and much more). You can draw a graph (or import it from a file), then use a Graphiz-based layout engine to automatically layout the graph. You can tweak the parameters of the layout engine, and finally you can switch off automatic layout and fine-tune the placement of the nodes manually.

That said, I still tend to use Xfig for most illustrations in my papers... The possibility to embed arbitrary Latex code in your illustrations is often essential, and that's exactly where Xfig excels (at least until you need to deal with publishers who expect self-contained EPS files).

> **Comments:**
> **username_10**: You should try TikZ. Sounds like you'd like it. :)  
> **username_9**: @Radu: I have tried it. At some point I had to start compiling my Latex code on a remote machine, as my desktop computer was far too slow, and even then it was a pain. TikZ might be fine if your illustrations are small (in particular, not computer-generated), or if you are willing to compile your figures and your main document separately.  
> **username_10**: Ah, yes, I had that problem once. I put the generated part in a separate file and commented out the \include/\input line while drafting. I agree that it can be annoying if you have such figures often.  

---

### Answer by username_4 on 2010-09-26. Score: 5

I want to add [Asymptote](http://asymptote.sourceforge.net/) to those mentioned by others.

The Wikipedia [page](http://en.wikipedia.org/wiki/Asymptote_%28vector_graphics_language%29) for Asymptote.


---

### Answer by username_11 on 2010-09-26. Score: 4

Since some have mentioned Graphviz, there is also [dot2tex](http://www.fauskes.net/code/dot2tex/) which converts Graphviz code into TikZ. This makes using it within LaTeX (have mathematical expressions in labels etc.) and fine-tuning the appearance of the graph easier. You can even embed the Graphviz code directly in the TeX code (in a dot2tex environment) and have it run Graphviz automatically.


---

### Answer by username_12 on 2010-09-29. Score: 2

Apart from TikZ and graphviz I have made good use of my graphics tablet. You can get the new small Wacom Bamboo for 50€ (used) to 100€ (new). With a tablet you can create quite good looking images quickly; for anything but journal/conference/book publications -- depending on your skill, even then -- the results are very presentable.

You can, of course, use any graphics program. I have found [Creately](http://creately.com/) and [Dabbleboard](http://dabbleboard.com/draw) very useful for graphs and the like.


---

### Answer by username_13 on 2010-09-26. Score: 2

For simple drawings I prefer [yEd](http://www.yworks.com/en/products_yed_about.html). It can be launched straight from the browser.


---

### Answer by username_14 on 2012-11-07. Score: 2

You might take a look at [GePhi](https://gephi.org/screenshots/).


---

### Answer by username_15 on 2010-09-28. Score: 1

If you require some geometry, you could try [C.a.R.](http://zirkel.sourceforge.net/doc_en/index.html) or its offspring [CaRMetal](http://db-maths.nuxit.net/CaRMetal/index_en.html).


---

