Will your figure labels be readable at poster size?

Paste your R (ggplot2) or Python (matplotlib) plotting code and type the size the figure will print at. The check scores its titles, axis labels, tick labels, legend and caption at that size against minimums of 18 pt for axis titles, 14 pt for tick labels and 12 pt for captions. If anything falls short, it sets the size each element needs in a copy of your script. No account, and your code never leaves the browser.

How the check works: it scales your figure from its source canvas to the printed size. In R the canvas is the ggsave() width and height, with its units and scale, the size of a png() or pdf() device the plot is printed to, or the size you typed when there is neither. In Python it is the figsize or set_size_inches() your code sets, or matplotlib’s default of 6.4 × 4.8 in. A seaborn grid that sizes itself from its facets and legend, or a save cropped with bbox_inches="tight", prints at a scale the code does not give: the check marks the scale, and the copy of your script saves the figure at the size checked, keeping what the crop kept when that fits the canvas at the sizes needed. It then scores each text element against a minimum: 18 pt for titles and axis titles, 14 pt for tick labels, legends and strips, 12 pt for captions.

It reads the settings that decide text size in the order your code sets them, the last one winning. In R: base_size (named or not), the sizes theme() sets for text, title and each element, with rel(), theme_set() and theme_update(), the sizes a legend’s own guide sets, and each plot of a figure that combines plots (cowplot, gridExtra). In Python: font.size and each element’s own size in rcParams (in plt.rc() and rc_context() too), seaborn’s set_theme() and set_context(), matplotlib’s built-in style sheets, and the sizes your code gives titles, axis labels, tick labels, legends, colorbars and captions, in a loop over the Axes too. A size your code does not set, or sets in a way the check cannot read, is marked, and the default is assumed.

If anything falls short, or a size or the canvas is assumed, it gives you your script back with plain edits, to use in place of yours: each size changed where your code sets it, the ones your code leaves out set, and the figure saved at the size checked, with any text a cropped save keeps outside the plots still in it when it fits the canvas. It never writes a size below the one the table shows, and a size your code sets in a way the check cannot read is raised to at least the size needed, read when the script runs, never below what your code sets. A figure that combines plots gets the sizes in each plot, before they are combined. When elements that fall short follow base_size (font.size in Python), it also gives the base_size at which they meet their minimums, as a one-line snippet, never below your own. It leaves that number out when they follow different settings, when the theme is not one of ggplot2’s, when the figure combines plots, or when the printed scale depends on something your code does not give, such as a seaborn grid or a cropped save.

Postr is a free academic poster editor with this same check in its Figure tab: drag a figure box on the canvas and the check sizes against it, or select an image block to use its exact print dimensions.