Take the 2-minute tour ×
Academia Stack Exchange is a question and answer site for academics and those enrolled in higher education. It's 100% free, no registration required.

I would like to have suggestions of good software for drawing illustrations in research papers. I already know about Xfig, but this works only on Linux and is at times, clunky when it comes to text. Moreover the resolution is not always perfect making it difficult to manoeuvre the objects. Besides it is tough to learn and master, with all its weird click procedures.

I would love to know about better alternatives. Not talking about graphs here, just block diagrams and explanatory illustrations.

share|improve this question
    
There are similar questions at math.SE: e.g. this one and the linked question. –  Martin Apr 12 '12 at 7:51
    
And at physics.SE - physics.stackexchange.com/questions/401/…. –  Piotr Migdal Apr 12 '12 at 8:26

13 Answers 13

up vote 57 down vote accepted

As drawing software, I use OmniGraffle which is much more modern that Xfig, but based on similar principles. It's only available for the Mac and is not free, as far as I know. With little effort, one can produce very attractive diagrams.

I also use Tikz/PGF. It produces very nice diagrams and is very flexible. On the other hand, it requires that you specify the diagram in LaTeX and it has a bit of a steep learning curve.

share|improve this answer
21  
Tikz/PGF is really great, and I would advise to start directly by tweaking some existing examples, rather than learning it from scratch. –  userxxxxx Apr 12 '12 at 7:36
2  
I've given some arguments for the use of Tikz at the stats site as well, see here. Mainly Tikz is pretty simple for directed graphs, and that it is much easier to maintain a template between multiple diagrams in Tikz than it is with a WYSIWYG editor. –  Andy W Apr 12 '12 at 11:59
3  
+1 for OmniGraffle (followed by pointed silence) –  JeffE Apr 12 '12 at 19:43
3  
@DaveClarke, Nice troll about Linux ;). –  Gopi Apr 13 '12 at 12:59
3  
@Suresh: see the section "Externalizing graphics" in the TikZ manual for a solution. –  Federico Poloni Jul 29 '12 at 12:10

A free, fairly portable, and very complete tool for general illustration is Inkscape. It uses SVG as its native file format, and aside from attempting to be a decent drawing tool in its own right, one of its design goals was to provide complete coverage of the features available in SVG.

For block diagrams, flow charts, and other simple sketches of process and data flow there is Dia. It's primary design goal is to duplicate the features of Visio in free software. Like Visio, it uses a stencils and connections drawing model that works really well for diagramming relationships and flow, but gets tedious when attempting to do art.

For clean layout of directed or undirected graph diagrams, it is difficult to beat the Graphviz tools. They are primarily designed to be used from a textual description (a concise intro here (PDF)) of the graph, but there are various GUI tools that can edit their .dot files.

share|improve this answer
10  
Inkscape is also good for cleaning up diagrams, such as graphs produced by R. –  Dave Clarke Apr 13 '12 at 6:56
    
I use Inkscape to make the figures without text, then use the lpic LaTeX package to add the text (or mathematical) labels. –  Derrick Stolee Jul 27 '12 at 13:21

I know that TikZ was mentioned already, but I think it deserve its own answer. It is different from Omnigraffle just like TeX is different from Word. But, if you're up for the effort, you'll enjoy the freedom of producing extremely high quality figures!

True, using TikZ for "heavy" diagrams can lead to lengthy compilations, but this can be solved using the externalize library of TikZ, or the Standalone class. See also this possible approach using make.

Although TikZ is not at all WYSIWYG, there are several editors, that enable the use to draw "by hand" the diagram and export it to a Tikz snippet. Personally, I don't have experience with this kind of combination.

Another advantage of TikZ, that as it is somewhat a programing language (after all TeX is turing-complete) you can program your diagram and use external data sources and visualize them. To that end, you can use a combination of TeX, lua or other languages of your choice.

Finally, and most important; TikZ provides an amazing live community which can help you with everything related to it. A perfect starting point would be the TeX.se.

PS: You can also have a look at pstricks. It implements a similar spirit like TikZ but... Well, I'm not using it so I cannot say much. I can say, that I saw amazing outputs of pstricks.

share|improve this answer

GeoGebra is free and multi-platform dynamic mathematics software for all levels of education that joins geometry, algebra, tables, graphing, statistics and calculus in one easy-to-use package. Constructions can be made with points, vectors, segments, lines, polygons, conic sections, inequalities, implicit polynomials and functions. All of them can be changed dynamically afterwards. Elements can be entered and modified directly on screen, or through the Input Bar. GeoGebra has the ability to use variables for numbers, vectors and points, find derivatives and integrals of functions and has a full complement of commands like Root or Extremum. Teachers and students can use GeoGebra to make conjectures and prove geometric theorems.

To add something that I personally liked a lot, it has the ability to generate TikZ code for any drawing made using the software! Also, the community recently completed a kick-starter campaign, in which they raised enough funds for an IPad version of the software, to be also available for free!

[EDIT] - The tablet app is available now, both in App Store and Google Play!

share|improve this answer

Mathematica is actually good for making all sorts of graphics. Think of it as vector graphics software, but that every control point/coordinate can be specified to the decimal.

Edit: The syntax is really clear, it is easy to procedurally construct graphics, and it has lines, arrows, bezier curves, and of course a bunch of nice builtin plot functions that one can add extra decorations to. Furthermore, it IS a programming language, so if you have multiple images, it is easy to share common components, so that a singe change affects all images (provided you use a good programming technique). It is also easy to get help with mathematica over at mathematica.stackexchange.

The included image was entirely produced via a few lines of mathematica code, for example:

enter image description here

share|improve this answer

I use ipe almost exclusively. It's not well polished, and some things are non-intuitive, but it does those things I need well (simple sketches of math. structures with LaTeX formatted text). Also, LaTeX wiki book has some useful suggestions for alternatives.

share|improve this answer
1  
Can you expand on what you like about this software. Big list questions like these are not great fits for SE sites, because they tend to get multiple answers that do not provide much value apart from a link offsite. –  StrongBad Mar 26 '13 at 15:58
    
Indeed, this answer would benefit enormously from a brief description of what Ipe is and what it can do. Even the linked project page does a rather poor job of explaining that -- after browsing the documentation and the wiki, I'm now fairly sure that it's some kind of a vector graphics editor, similar to Inkscape or maybe GeoGebra, but even that was not obvious at a glance; I first assumed it was just a diagram markup language like TikZ. Oh well, it still seems interesting enough that I guess I'll just have to download and try it. –  Ilmari Karonen Mar 26 '13 at 20:11

If you really care about typography, it is best to produce the figures and the text with the same layout engine. This is the only way in which you can be sure that fonts, stroke size and spacing match those of your text.

TikZ, already suggested in Dave Clarke's answer, solves this problem excellently for TeX. Although, like TeX, it can be difficult for a newcomer. Adobe InDesign is a WYSIWYG solution. MS Publisher is another one, although less powerful. Word has limited capabilities in this respect.

Most often, this requires access to the final article style of the journal, and is work for a typographer rather than a scientist. So it would be better left to the journal staff. However, it is an unfortunate truth that most journals try to reduce costs at the expense of quality when it comes to typography. Some of them offer "professional figure editing" as an extra paid service for authors. Some of them just take what is provided and do not care about fonts and stroke sizes.

share|improve this answer

The vector graphics language Asymptote is a very nice tool for both 2D and 3D images. From its website:

Asymptote is a powerful descriptive vector graphics language that provides a natural coordinate-based framework for technical drawing. Labels and equations are typeset with LaTeX, for high-quality PostScript output.

Checkout a gallery for samples. Just like TeX, you can "program" your image and obtain exactly what you want.

share|improve this answer

TikZ/PGF is great when you get it to work. However, designing your stuff in this language can really be frustrating at times. If you want something a little bit easier to learn, but you still want to program your illustrations rather than drawing them yourself, check out Processing. There are a lot of excellent tutorials on this language, some of them specifically aimed towards people with no prior programming experience (for example this one).

If you want to check out what some examples of what Processing is capable of (and how you can do it yourself), take a look at this page. As an added bonus, if you learn processing, you can later use it for creating animations, interactive applications, games, and similar things, some of which might be useful in a scientific context.

Some random examples of what Processing can do:

enter image description here enter image description here

Also, check out this video for an example of an animation with Processing, and this video for a tutorial on how to use Processing for data visualization.

share|improve this answer

In general, if you intend to draw either mind maps or flow diagrams, you may use the conceptdraw tool. It serves both Mac and MS Windows users.

share|improve this answer
1  
Can you expand on what you like about this software. Big list questions like these are not great fits for SE sites, because they tend to get multiple answers that do not provide much value apart from a link offsite. –  StrongBad Mar 26 '13 at 15:57

All ways that allow you to produce the graphic you want is what you should use. I have used many different software over the years. I have gradually abandoned ones when I found better alternatives. I usually make "raw" data plots using Matlab and then use Adobe Illustrator to put the finishing touches to them (Inkscpe or Corel draw would work equally well). The benefit of doing things this is, for me, that I can add material from different sources or plots in layers and change them as I see fit. I am sure this can be accomplished in other ways but I have found my way to the final product. I also happen to like messing with graphics so that helps me to explore new ways. I also use LaTeX and TikZ (which has been mentioned in replies) and so as I see it there is obviously no single way to generate the graphics but you need to chose the best ones. In my case: Illustrator (alt. Inkscape, Corela Draw), matlab, TikZ, and Photoshop (alt. Gimp) for photographic manipulation.

share|improve this answer
    
"The benefit of doing things this is for me". Something not right with that phrase. Missing word or wrong word? –  Faheem Mitha May 17 at 23:32

To add to the mix, there are online diagramming tools available as well, namely Gliffy and LucidChart. Both have free subscriptions that allow limited use which is usually sufficient for simple diagrams. With these tools, you draw the diagram in your browser and can download it as PNG, PDF or JPEG. LucidChart allows a free upgrade if you register using a *.edu.* email address.

Another good offline tool is Microsoft Visio which works on Windows only. It is great for drawing flow charts and other simple diagrams. There are many Visio clones but none of them live up to the original. In fact, I stumbled upon the above online tools looking for Visio alternatives for Linux.

share|improve this answer

I really like using yEd for flow charts. You can easily arrange lot's of components, which is quite a pain if the tool does not provide functionality to do that (Inkscape does for example, but yEd does this even better). Also, the connections between components remain fixed, so rearranging a graph does not require you to redraw the connections. The tool is available for Linux, Mac and Windows.

share|improve this answer

protected by Bravo Mar 26 '13 at 15:49

Thank you for your interest in this question. Because it has attracted low-quality answers, posting an answer now requires 10 reputation on this site.

Would you like to answer one of these unanswered questions instead?

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