22
$\begingroup$

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?

$\endgroup$
5
  • 1
    $\begingroup$ I'm not sure if this is considered on-topic (the FAQ gives little guidance). You may find this MO thread of relevance. $\endgroup$ Sep 26, 2010 at 5:57
  • 1
    $\begingroup$ It's definitely a soft question, but right on the border. Maybe CW ? $\endgroup$ Sep 26, 2010 at 6:06
  • $\begingroup$ Suresh's answer is really good. Graphviz is also a nice tool, although harder to link into papers. $\endgroup$ Sep 26, 2010 at 7:06
  • 3
    $\begingroup$ IMO, completely on-topic, but I personally won't vote up as I think it should be CW. $\endgroup$
    – Kaveh
    Sep 26, 2010 at 10:02
  • 4
    $\begingroup$ 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. $\endgroup$ Sep 26, 2010 at 14:38

9 Answers 9

19
$\begingroup$

The MO thread Per links to is pretty good, and this thread on tex.SE is also handy. The main tools that I've used:

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)
$\endgroup$
2
  • $\begingroup$ 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. $\endgroup$ Sep 26, 2010 at 8:50
  • $\begingroup$ the export procedure isn't complete though: no gradients etc from what I understand. $\endgroup$ Sep 28, 2010 at 3:05
12
$\begingroup$

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

tkz-graph

tkz-berge

tkz-tab

For a sample usage, see the gallery of named graphs.

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

$\endgroup$
3
  • 1
    $\begingroup$ That gallery is beautiful! $\endgroup$ Oct 28, 2010 at 14:55
  • $\begingroup$ I know I'm 3+ years out of date, but the link to the gallery above is broken. $\endgroup$
    – Xynariz
    May 21, 2014 at 17:36
  • $\begingroup$ @Xynariz: Thanks for notifying me! I corrected the link. $\endgroup$ May 23, 2014 at 7:28
6
$\begingroup$

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).

$\endgroup$
3
  • $\begingroup$ You should try TikZ. Sounds like you'd like it. :) $\endgroup$ Sep 29, 2010 at 8:31
  • $\begingroup$ @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. $\endgroup$ Sep 30, 2010 at 21:31
  • $\begingroup$ 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. $\endgroup$ Oct 1, 2010 at 12:06
5
$\begingroup$

I want to add Asymptote to those mentioned by others.

The Wikipedia page for Asymptote.

$\endgroup$
4
$\begingroup$

Since some have mentioned Graphviz, there is also 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.

$\endgroup$
2
$\begingroup$

For simple drawings I prefer yEd. It can be launched straight from the browser.

$\endgroup$
2
$\begingroup$

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 and Dabbleboard very useful for graphs and the like.

$\endgroup$
1
$\begingroup$

If you require some geometry, you could try C.a.R. or its offspring CaRMetal.

$\endgroup$
1
$\begingroup$

You might take a look at GePhi.

$\endgroup$

Your Answer

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

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