How to Make High-Quality Figures for Scientific Papers

Making good figures for scientific papers comes down to four things: using the right software, exporting at the correct resolution, designing for clarity and accessibility, and following journal-specific formatting rules. The technical bar is higher than most researchers expect. Line art needs at least 1,000 DPI, color images need at least 300 DPI, and your final files usually need to be in vector format or high-resolution TIFF. Here’s how to get there from start to finish.

Choose the Right Tool for the Job

No single piece of software handles every type of scientific figure well. The best approach is to generate your data plots in one tool and assemble multi-panel figures in another.

For data-driven plots like bar charts, scatter plots, survival curves, and heatmaps, coding tools give you the most control. R (with ggplot2) and Python (with matplotlib or seaborn) let you script your figures so they’re fully reproducible. If your dataset changes, you re-run the script instead of rebuilding from scratch. GraphPad Prism is a popular GUI alternative, especially in biomedical fields, and exports publication-quality graphs without writing code.

For assembling panels, adding labels, and creating schematics or diagrams, you need a vector graphics editor. Adobe Illustrator is the industry standard, but Inkscape is a free, open-source alternative that handles the same file formats. Both let you import plots from your analysis software, arrange them into multi-panel layouts, and add consistent labels. For biological diagrams specifically, BioRender provides a library of pre-made icons for cells, organs, pathways, and lab equipment that can save hours of illustration work.

Vector vs. Raster: Know the Difference

This distinction matters more than almost anything else in figure preparation. Raster images (TIFF, PNG, JPG) are built from pixels. If you scale them up, they get blurry. Vector images (EPS, SVG, PDF) are built from mathematical equations describing shapes and lines. You can scale them infinitely without losing sharpness, and the file size stays the same.

Use vector formats for anything with lines, text, or solid colors: graphs, charts, diagrams, flow charts, and schematics. Use raster formats for photographs, microscopy images, gels, and blots. If your figure combines both types, like a micrograph next to a bar chart, assemble them in a vector editor so the text and graph elements stay crisp even though the photo panel is raster.

Most journals accept EPS, PDF, or high-resolution TIFF for final submission. Avoid JPG for anything. JPG uses lossy compression that introduces visible artifacts, especially around sharp edges and text.

Resolution Requirements

Journals specify minimum resolutions for different figure types, and these vary. Cell Press guidelines are representative of what most high-impact journals expect: at least 300 DPI for color or grayscale images, at least 500 DPI for black-and-white images, and at least 1,000 DPI for line art (graphs, charts, diagrams with no photographic content). These resolutions apply at the final print size, not at the size you see on your monitor.

A common mistake is creating a figure at screen resolution (72 or 96 DPI) and then changing the DPI setting in image software without increasing the actual pixel count. That doesn’t add detail. If your final figure will be printed at 3.5 inches wide (a single journal column) and needs 300 DPI, the image must be at least 1,050 pixels wide. For line art at 1,000 DPI, that same column width requires 3,500 pixels.

The simplest way to avoid resolution problems is to work in vector format for as long as possible and only rasterize at the very end, if required by the journal.

Exporting From R and Python

If you generate plots in code, the export step is where quality is won or lost. In R’s ggplot2, use ggsave() to export directly to vector formats. For EPS files that preserve semi-transparency (common in overlapping survival curves or density plots), specify the Cairo graphics device:

ggsave(filename = "figure1.eps", plot = p, device = cairo_eps)

You can also export to SVG, which is easy to open and edit in Inkscape or Illustrator. For Python’s matplotlib, use savefig() with a vector format:

plt.savefig("figure1.svg", format="svg", bbox_inches="tight")

The bbox_inches="tight" parameter trims excess whitespace. If a journal requires TIFF, you can export at high resolution by setting the DPI parameter: plt.savefig("figure1.tiff", dpi=600). For ggplot2, the equivalent is ggsave(filename = "figure1.tiff", dpi = 600).

Typography and Labeling

Use a sans-serif font throughout your figures. Arial and Helvetica are the safest choices because virtually every journal accepts them. Springer Nature guidelines specifically recommend Helvetica or Arial at 8 to 12 point. Keep the size variation minimal within a single figure. If your axis labels are 10 point, don’t make your axis title 20 point. That inconsistency looks amateurish and signals sloppy preparation to reviewers.

Text smaller than 7 point becomes illegible for most readers at print size, so treat that as your absolute floor. Remember that figures are often scaled down during typesetting, so what looks fine on your 27-inch monitor may be unreadable on a journal page. A good test: print your figure at the journal’s column width (typically 8.5 cm for a single column, 17.5 cm for a double column) and check whether every label is still readable.

Label panels with bold uppercase letters (A, B, C) placed consistently in the same corner of each panel. Always include units on axes, and insert a space before unit abbreviations (e.g., “0 h” not “0h,” “50 kDa” not “50kDa”).

Designing Multi-Panel Figures

Most published figures contain multiple panels, and how you arrange them affects both clarity and the efficient use of journal page space. The key principle is to minimize blank space. Leave enough room between panels to clearly separate them, but no more. Think about the geometric arrangement that wastes the least area. A 2×2 grid is more space-efficient than four panels in a single row if your panels are roughly square.

Panels should follow a logical sequence. Readers expect to move left to right, top to bottom, and the panel order should match the order you reference them in the text. A good rule of thumb: if you can trace a continuous line through panels A, B, C, D without the line crossing itself, your layout works.

When combining different types of data (a micrograph next to a quantification bar chart, for example), align the related panels so the visual connection is obvious. Place scale bars directly on microscopy or imaging panels rather than stating magnification in the legend, since figures are resized during production and magnification ratios become meaningless.

Color and Accessibility

Roughly 8% of men and 0.5% of women have some form of color vision deficiency, and reviewers or readers may be among them. Designing accessible figures isn’t just considerate; some journals now require it.

For categorical data with distinct groups, use a colorblind-safe palette. The ColorBrewer tool (colorbrewer2.org) lets you select palettes filtered for colorblind safety. It supports up to 4 colors for qualitative data, 9 for sequential, and 11 for diverging schemes. Paul Tol’s color schemes, recommended by the Netherlands Cancer Institute, offer additional options. For continuous data like heatmaps, the Viridis palette (available in both R and Python) is a reliable default that remains distinguishable across all common forms of color blindness.

Beyond palette choice, a few practices make your figures more robust. Use patterns, shapes, or line styles in addition to color so the data is still interpretable in grayscale. Keep the number of color categories as low as possible, because more colors means smaller perceptual differences between them. Place legends in the same order as the data appears in the figure, or better yet, label data series directly on the plot to eliminate the need for a legend altogether.

Image Manipulation Ethics

Journals take image integrity seriously, and many now screen submitted figures with forensic software. The line between acceptable adjustment and data fabrication is well defined.

You can adjust brightness and contrast uniformly across an entire image to improve visibility, as long as you don’t clip information at the bright or dark ends of the range. Cropping to center a subject or remove empty space is fine. What you cannot do is apply adjustments to only part of an image, use auto-contrast or auto-levels tools (which apply non-uniform corrections), or crop strategically to remove data that changes the interpretation, like trimming dead cells from a viability image to show only healthy ones.

Splicing, where you combine parts of different images into one panel, is the area that gets researchers into the most trouble. If you must combine separate gel lanes into a single image, you need to clearly mark the splice point with a visible line or gap. Even then, avoid making quantitative comparisons across spliced sections, since the original images may have been captured under different conditions. Any adjustment you make should be disclosed in the methods section or figure legend, and you should retain the unprocessed original files in case the journal requests them during review.

Putting It All Together

A practical workflow looks like this. Generate your data plots in R, Python, or Prism, exporting each as a vector file (SVG or EPS). Open a vector editor like Illustrator or Inkscape and set up a canvas at the journal’s required figure width. Import your panels, arrange them in a logical grid, and add consistent panel labels in the same font and size. For photographic panels, place the high-resolution raster images and add scale bars. Check that all text is between 8 and 12 point at the final output size. Export according to the journal’s specifications, typically EPS, PDF, or TIFF at the required resolution.

Before submitting, print the figure at actual size and look at it from a normal reading distance. If any label is hard to read, any line is too thin to see, or any color pair is hard to distinguish, fix it. The five minutes you spend on that check can prevent weeks of delay from a journal production team sending your figures back for revision.