20
$\begingroup$

I’m currently writing my first paper, a little paper, and I’d like to have some nice graphics in it. Much of the proof work is tedious analysis and I’d like to give any potential reader visual references to help.

To give an idea of what I’m looking for in particular, I’d like to have some pictures of the plane with square lattice points, perhaps some of the points labeled with their coordinates. I’d also like to be able to create images of complex integrals (Argand diagram with labeled coordinate axes, little arrow along the path to orient the path).

Anyone have experience generating these graphics who can direct me to online resources/libraries/software (preferably free)?

EDIT: Thank you very much everyone for all the effort into your responses. There are multiple great answers here. Exploring as many as I can will be my goal!

$\endgroup$
5
  • 21
    $\begingroup$ The usual recommendation is to use TikZ, but there's a bit of learning curve. Inkscape is probably a bit simpler, you could try that first to see if you're able to produce the sort of images you're after. PS: Congratulations on your first paper! :-) PPS: I would suggest checking with your advisor whether they recommend including the images. For better or worse, there are people that believe it can give off a slightly unprofessional vibe. $\endgroup$
    – Leo Moos
    Mar 15, 2023 at 23:24
  • 2
    $\begingroup$ Check out matlab2tikz $\endgroup$ Mar 18, 2023 at 2:46
  • 1
    $\begingroup$ I use TikZ too in LaTeX, but I also wrote Python code that generates various types of graphs depending on the library that you use. Even made videos out of it! $\endgroup$ Mar 18, 2023 at 9:05
  • 2
    $\begingroup$ Something I've done recently is to use the javascript library and web editor p5.js. It is optimized toward creating graphics and animations. $\endgroup$
    – Jim Conant
    Mar 18, 2023 at 19:03
  • 2
    $\begingroup$ It is still in early stage, but Penrose is a tool that is very promising: penrose.cs.cmu.edu $\endgroup$
    – Tadashi
    Mar 20, 2023 at 21:42

6 Answers 6

19
$\begingroup$

Ipe is a fantastic tool. There's also a bit of a learning curve, but it's not too bad. I've seen people who are proficient at it generate amazing figures in a matter of minutes.

https://ipe.otfried.org/

Edit: I wish I had known about it a few years ago, it would've saved me many hours of TikZ coding.

$\endgroup$
2
  • 2
    $\begingroup$ @edwardcornfoot I have been using Ipe for many years. It is easy to learn, you can include arbitrary LaTeX markup and export the vector graphics to SVG, PDF and PNG. What's more, you can even generate presentation slides. I think it is much easier than Inkscape. $\endgroup$ Mar 16, 2023 at 9:16
  • 2
    $\begingroup$ @ZoltánCsáti is right. IPE is super easy to learn and you put in LaTeX. Inkscape seems to me much less valuable regarding doing maths figures. With a little work, you may even directly export IPE xml files from any code you'd like to write yourself to generate data for your graphics. $\endgroup$ Mar 16, 2023 at 18:59
20
$\begingroup$

You can use tikz, or indeed any programming language, together with ChatGPT. I have no previous experience on tikz, but I have used it to generate the following pictures: enter image description here

enter image description here

enter image description here

by using prompts like: "I want a picture in tikz of a map from an open subsets of $\mathbb R^2$ $U$ and $V$", or "I want the graph of the sin function with the area between 0 and $\pi$ filled,... Then you can modify the result with a bit of intuition.

Added:

Maybe you don't obtain results after a first try. For example, I asked for "tikz picture of the area between two graphs" and the resulting tex code gave me errors. Surprisingly, I copied the error message to chatgpt, I wrote: "I obtain this error "! Package PGF Math Error: Unknown function `x' (in '0.5*x^2')."" Then, ChatGPT returned a correct code: enter image description here

$\endgroup$
3
  • 1
    $\begingroup$ together with ChatGPT??? How? $\endgroup$
    – C.F.G
    Mar 18, 2023 at 18:11
  • 3
    $\begingroup$ For example, you can write: "I want a tikz picture code for the graph of two functions, sin(x) and cos(x/2)." Then chatgpt provides you the following the code to paste in a tex document. $\endgroup$ Mar 18, 2023 at 18:41
  • 1
    $\begingroup$ \begin{tikzpicture} \draw[->] (-2*pi,0) -- (2*pi,0) node[right] {$x$}; \draw[->] (0,-1.5) -- (0,1.5) node[above] {$y$}; \draw[domain=-2*pi:2*pi,smooth,variable=\x,blue] plot ({\x},{sin(\x r)}) node[right] {$y=\sin(x)$}; \draw[domain=-2*pi:2*pi,smooth,variable=\x,red] plot ({\x},{cos(\x/2 r)}) node[right] {$y=\cos(x/2)$}; \end{tikzpicture} $\endgroup$ Mar 18, 2023 at 18:48
15
$\begingroup$

I like GeoGebra very much and it is free of charge for the stated purpose, so you can include high quality figures that are easy to be drawn and labeled. Just remember to cite the source properly. If you are in trouble, I used the following citation in a paper, which you could take as a model:

M. Hohenwarter, M. Borcherds, G. Ancsin, B. Bencze, M. Blossier, J. Elias, K. Frank, L. Gal, A. Hofstaetter, F. Jordan, B. Karacsony, Z. Konecny, Z. Kovacs, W. Kuellinger, E. Lettner, S. Lizelfelner, B. Parisse, C. Solyom-Gecse and M. Tomaschko, “GeoGebra - Dynamic Mathematics for Everyone - version 6.0.507.0-w”, International GeoGebra Institute, 16 Oct. 2018. https://www.geogebra.org

About Argand Diagram on GeoGebra, here it is an example: Argand Diagram by Hatchtag Resources

$\endgroup$
4
  • 1
    $\begingroup$ I'm unsure if GeoGebra needs to be cite like you suggest - see for example this question on academia.SE. $\endgroup$
    – ADL
    Mar 16, 2023 at 13:39
  • 2
    $\begingroup$ You are welcome! @ADL I remember that I spent many hours reading a lot of info at the time. I finally concluded that is "melius abundare quam deficere" in giving proper credits to the developers of a free tool that helps you in solving problems (in 2011, I did the same thing with WolframAlpha as I wrote a book about stable digits and integer tetration), so I think that the comparison with MSW doesn't hold here. However, another viable option could be to cite the PhD thesis of the creator (which is about the GeoGebra project)... but I am not an expert of the field. Just my two cents. $\endgroup$ Mar 16, 2023 at 14:29
  • 1
    $\begingroup$ @DavidRoberts, editing in the specific citation is surely a good idea, and of course moderators are entitled to a heavier hand; but I think it might have been better simply to suggest removing the reference to the paper and leave the author to make the decision about whether that was appropriate. $\endgroup$
    – LSpice
    Mar 18, 2023 at 20:54
  • 2
    $\begingroup$ @MarcoRipà I'm sorry to have been the cause of that decision. I hope you can appreciate that claims of proving long-standing open problems published in very obscure journals in most cases turn out to be less than the author hopes. I stress I'm not saying this about your paper! I know that sometimes, just sometimes, these matters just fall out that way with a perfectly good result. I'm happy to delete my comments, and I agree with LSpice that a better course of action would have been for me to ask you to edit your own question. $\endgroup$
    – David Roberts
    Mar 19, 2023 at 8:26
7
$\begingroup$

For the purposes of what you describe in your question, I think Inkscape would probably be fine (it's quite good for drawing the type of 2D figure which you describe).

I have used TikZ before but it can be fiddly. It sounds to me like existing TikZ templates which are similar to what you describe probably already exist, so you can take this template and make minor changes until it looks suitable for your purposes (this will also help you to see how TikZ works).

Further useful templates can be found at https://texample.net/tikz/examples/.

$\endgroup$
0
5
$\begingroup$

If you’re willing to spend money, then Adobe Illustrator, or PowerPoint, or any decent CAD system. If not, then Inkscape or IPE or FreeCAD. All of these can export graphics in PDF or SVG form, which you can then include in your paper.

If you think that coding is easier than drawing, then there is TikZ and Asymptote. If you look at all the questions about TikZ on this forum, you’ll see what experiences people have trying to use it.

$\endgroup$
1
  • 1
    $\begingroup$ I believe that some universities offer institutional subscriptions to (parts of) the Adobe creative suite; this could be something to look into as well. $\endgroup$ Mar 16, 2023 at 22:10
4
$\begingroup$

In case you want also to be able to do experiments with a programming language and are willing to take the learning curve, which pays itself later in my opinion, I would recommend Sagemath. You do not have to install it: https://sagecell.sagemath.org/ but can experiment with it online. And there are a lot of example graphics: https://doc.sagemath.org/html/en/reference/plotting/sage/plot/plot.html Also notice, that when you have the "source code" of your plot, you can later easily generate different versions of this plot and understand how you generated the plot, while "What You See Is What You Get" programs like Inkscape for example, do not provide this possibility.

$\endgroup$

Your Answer

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

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