We’ve all seen it before, illegible labels on a figure in a paper or talk. I don’t know how to remedy this problem in SuperMongo or other popular plotting programs, but I do in IDL. I’ve addressed the topic of postscript output on my IDL figures page but in this post I’m just going to focus on the issue of figure size and fonts. Symbols, line thickness, and colors will be discussed in future posts.
Make the figure close to the actual printed size
First thing, size matters. That old manuscript preparation document that said figures should fill a letter-sized page is misguided. No matter what type of font you use, if the text size looks right when the figure is 8 inches across, it will be too small when printed as a single column figure only 9 cm across. The BAD figure above is designed at 18 cm across while the BETTER one is 9 cm. Notice the difference in font size. (
Charsize was not specified for either plot.) Design the figures to be tiny from the beginning and no further adjustments to the font size will be necessary for either publications or talks.
When these “small from the start” figures are blown up to fill a letter-sized page (i.e., in Latex preprint mode), the fonts might seem too large and look funny to your eye but, since it ensures that nobody will ever have trouble reading your axis labels, you should just get used to it.
aspect_ratio=1.5 ;rectangle device, xsize=9, ysize=xsize/aspect_ratio
Use Postscript instead of Vector fonts
Inevitably, when a figure is illegible during a talk, a vector (Hershey) font was used instead of a Postscript font. For the purposes of 2D figures, the relevant difference is that vector fonts are thin and have a tendency to disappear while Postscript fonts are thick. The above BAD figure uses the default vector font while the BETTER one uses a Postscript font.
It’s so simple to switch from vector to device fonts! All you need is
!p.font=0. While you’re at it, you might as well specify Helvetica for good measure even though, as far as I can tell, it’s the default Postscript typeface.
set_plot, 'ps' !p.font=0 device, /helvetica ; a classic sans-serif font
Everything you ever wanted to know about fonts in IDL is in the Reference Guide.
Putting it together
aspect_ratio=1.5 xsize=9 ysize=xsize/aspect_ratio set_plot, 'ps' !p.font=0 device, filename='fig_better.eps', encapsulated=1, /helvetica device, xsize=xsize, ysize=ysize plot, a, b, xtitle='X Title', ytitle='Y Title' device, /close set_plot, 'x' !p.font=-1
Know how to get nice legible fonts in other plotting programs? Share it in the comments.