Experienced researchers tend to put a lot of weight on the raw data presented in a paper. They look at figures asking themselves if the data supports the interpretation that the researcher puts forward. Moreover, the quality of figures provides evidence for the level of attention to details that is essential for good research. Sloppy figures suggest a sloppy researcher, leading the paper to be rejected.
Visualization researchers suggested principles for conveying information by visual means. One particularly important principle is the data-ink ratio: maximize the ratio of data-ink to total-ink.
In practice, this means: things like (1) Avoid grid lines, (2) Avoid boxes surrounding figure and legends, (3) Use only axis tick labels that actually convey information. See example here.
See the guide here: https://usabilla.com/blog/how-to-design-for-color-blindness/
Tweaking figures too much by hand. It is tempting to manually tune the look of your figure. This is later becomes a huge time-drainer because figures get reproduced many times. This is particularly frustrating since figures usually need to be changed at late phases (eg when a reviewer asks for some change).
DO: Use scripts to create your figures. Figure creating should be part of your automatic system.
With that said, Combining figure panels into a single complex figures is usually easier to do manually.
Using small font size. The most common comment that I find myself giving to students is that the fontsize in their figures is too small. APA asks that Fontsize in figures should be between 8pt and 14pt. The default in matlab is usually 10pt, and that seems OK, but usually figures are being resized and combined with other figures, such that their size is greatly reduced. Also, when sending figures over email, a font size of 14 is too small, to be read in a thumbnail preview.
DO: resize your figure to the size expected in print. Then set the fontsize.
set(gca, 'FontSize', 20);
xlabel('This is the text', 'FontSize', 20);
Excessive lines. Remove unnecessary lines.
DO: remove boxes around the figure, around the legend. never use a grid.
h_legend = legend( bla bla, ... , 'location', 'best');
set(h_egend, 'box', 'off');
set(gca, 'box', 'off');
Creating several figures, instead of showing all information on a single figure.
DO: Combine as much as possible into a single figure.
It is most likely that this is still far from the extreme absurd cases that people use (see e.g., figure 1 here.
DO: If you use more than one figure, make them all use the same scale, so they can be compared.
Is your figure meaningful if printed in B/W? (see also).
Is the text on you figure readable if the figure it is resized to its final size?
Are there any non-essential lines on your figures?
Do the labels on your axes describe clearly the axes? (English words, not acronyms)
If you have more than one plot, are they all combined into a single figure?
(if not, do they all use the same scale)
Is a colorbar needed? If so, does it have clear axes labels?
If the data you show corresponds to averages? Did you include error-bars as well?
Did you use appropriate file format? (use png or svg for vector-graphics, not jpg)
DO NOT:
Here is a are real example of a figure that was sent to me. See if you can spot 7 different problems.
DO:
5. External Links:
A nice tutorial on how to use efficiently colors in graphs can be found here.
Here is a tutorial for making nice figures with python, and there's also the prettyplotlib library.
Seaborn is a nice python library for statistical visualizations. You can check out some tutorials about visualizing distributions, regression and categorical data.
On the link below you can find a matlab class that automates some of the figure stylings. You're welcome to use and contribute.
https://github.com/yuvval/matlab-pub-figures
Examples for using this class are here:
https://github.com/yuvval/matlab-pub-figures/blob/master/example.pdf