Graphic Design Stack Exchange is a question and answer site for Graphic Design professionals, students, and enthusiasts. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I need some help on how to create good looking vectorized images of these kinds of themes:



I work a lot with Latex when it comes to typesetting so I have some basic experience with Tikz. However I feel that if I need to make complicated images like the ones above I find myself a bit lost.

I would very much appreciate if someone could point me in the right direction as to how I could go about making these kinds of images, preferably using free software.

share|improve this question
Do you need the ability to input formulas or just drawing? – Ryan Jun 24 '14 at 11:46
To start with drawing would suffice, I guess I could always insert some in post processing. – Jack Jun 24 '14 at 11:49
When your done evaluating the questions, its important to accept the question. Otherwise it sends the wrong signal. Accept the question that feels most close to answerig your idea. Feel free to accept even one of the lower voted questions. Since this question has also nice side questions you might ask more specific tool combinations. Very enjoyable question thanks for that. – joojaa Jun 24 '14 at 16:49
Done! I will hopefully have follow up questions soon, which are more specific. Should I then open a new question and link to this one? – Jack Jun 24 '14 at 18:42
if you think linking helps. Remember to do the research, better researced questions lead to better answers. – joojaa Jun 24 '14 at 19:20
up vote 10 down vote accepted

Graphing applications that do vector output are available. Ive used following applications quite successfully:

  • Mathematica <- my preference it can do images like above
  • Matlab (remember to export eps)
  • Python using matplotlib
  • Maple
  • PSTricks
  • Illustrator
  • Xara
  • Inkscape
  • Autocad

Tough you may need to use 3d apps or graph apps as well I suggest:

  • yEd, various graph layouts and can be run off the internet with no instal needed.
  • Gephi, force directed graphs
  • Maya, 3DsMax with vector render
  • Creo, NX, Catia, Solidworks...

Usually its more productive to use some tool that can actually graph things as a basis and then import the EPS file into a graphics artists tool like illustrator for later finalization. The real benefit is that you can play with the graphs before you get involved so changing is easy.

Its also possible to graph stuff on your own in Illustrator if you wish, some code to help you on your way.


Heres some quick list of stuff till I have time to find some suitable examples (laminar flow right).

Some examples with similar components (you may need to add more stuff but here's some parts of the puzzle):

share|improve this answer
Thanks! This was very helpful. – Jack Jun 24 '14 at 13:18

Your best bet is to pick up a vector editor and learn how to use it. The examples above do not seem complicated, and a basic understanding of drawing vectors would do the job just fine.

If you will be trying one out, I would advise against Illustrator or Corel Draw. While both are powerful and popular tools of choice, they will seem daunting for a beginner. Inkscape is a good choice. It is free and learning it should not be a problem.

share|improve this answer
Inkscape has the added benefit of supporting export to PDF + Latex. You get PDF graphics with Latex texts. – jnovacho Jun 24 '14 at 13:12
So let me get this straight: If I plot an airfoil shape in Python using Matplotlib and a velocity profile like the one in the second image above, can I import them to Inkscape and then perform modifications to them such as 'skewing' and rotating of the plots? – Jack Jun 24 '14 at 13:34
@Jack yes as well as ability to recolor change line widths move legends etc. – joojaa Jun 24 '14 at 13:47
Great, i'll give that a try! – Jack Jun 24 '14 at 13:49

First: .PY + Matplotlib -> .SVG

Then, .SVG -> Inkskape

However, .SVG is easy enough to learn to go .PY -> .SVG

You could also do .PY + Matplotlib -> .PDF. Inkscape would open that as well.

share|improve this answer
Thanks for your comment. So I work in python and save it as an svg file, then open it with Inkscape? – Jack Jun 24 '14 at 14:10
Xor while your at this you might make an example or should I. +1 in anycase, python can also directly talk with inkscape but maybe this is a different question to ask? – joojaa Jun 24 '14 at 15:17


  1. I don't typically program in Python unless I have to fix someone else's code
  2. I've never used Matplotlib - this is my first attempt at using it and, since it looked interesting, the ONLY reason I'm posting this answer.

Now a more robust answer: (Not that I enjoy doing homework for PhD candidates...)

Everything here was stolen - flat out stolen - from the matplotlib website (see Examples) and from Stack Overflow (matplotlib save fig image trim). All I did was copy/paste it and test it.

The resulting out.svg file can be opened directly in Inkscape. The image is a Group/Groups of smaller images. Click on any part of the image, then use Inkscape's 'Ungroup' option. You may have to ungroup a few times to be able to directly manipulate part of the image.

from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
from matplotlib.ticker import LinearLocator, FormatStrFormatter
import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
ax = fig.gca(projection='3d')
X = np.arange(-5, 5, 0.25)
Y = np.arange(-5, 5, 0.25)
X, Y = np.meshgrid(X, Y)
R = np.sqrt(X**2 + Y**2)
Z = np.sin(R)
surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.coolwarm,
        linewidth=0, antialiased=False)
ax.set_zlim(-1.01, 1.01)


fig.colorbar(surf, shrink=0.5, aspect=5)



fig.savefig('out.svg', transparent=True, bbox_inches='tight', pad_inches=0)
share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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