23

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?

Kaveh
  • 21,577
  • 8
  • 82
  • 183
Chris
  • 333
  • 1
  • 2
  • 5

9 Answers9

19

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)
Suresh Venkat
  • 32,071
  • 4
  • 95
  • 271
  • 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 Sep 26 '10 at 08:50
  • the export procedure isn't complete though: no gradients etc from what I understand. – Suresh Venkat Sep 28 '10 at 03:05
12

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

Sadeq Dousti
  • 16,479
  • 9
  • 69
  • 152
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).

Jukka Suomela
  • 11,500
  • 2
  • 53
  • 116
  • You should try TikZ. Sounds like you'd like it. :) – Radu GRIGore Sep 29 '10 at 08:31
  • @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 Sep 30 '10 at 21:31
  • 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 Oct 01 '10 at 12:06
5

I want to add Asymptote to those mentioned by others.

The Wikipedia page for Asymptote.

Kaveh
  • 21,577
  • 8
  • 82
  • 183
4

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.

DaniCL
  • 172
  • 4
2

You might take a look at GePhi.

Giorgio Camerani
  • 6,842
  • 1
  • 34
  • 64
2

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

Tomer Vromen
  • 623
  • 7
  • 10
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 and Dabbleboard very useful for graphs and the like.

Raphael
  • 4,565
  • 28
  • 48
1

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

RJK
  • 1,952
  • 1
  • 19
  • 27