A publication-quality figure is mostly decided before you export: export at the exact size the figure will be printed, use a vector terminal, and keep text, lines and colors legible at that size. The checklist below turns those principles into a five-minute pre-submission routine, with a template script that already encodes them.
# Template: single-column journal figure, exported at final size
set terminal pdfcairo size 8.5cm,6.5cm enhanced font "Sans,9"
set output "figure1.pdf"
set title "Figure title (or leave the caption to the paper)"
set xlabel "Time (s)"
set ylabel "Signal (mV)"
set tics font "Sans,8"
set key font "Sans,8"
set border linewidth 1.2
set grid
plot "data.dat" using 1:2 with lines linewidth 2 linecolor rgb "#0072B2" title "Control", \
"data.dat" using 1:3 with lines linewidth 2 dashtype 2 linecolor rgb "#D55E00" title "Treatment"
set output
Every number in that template is a decision, not a default. The canvas is 8.5 cm wide — a typical journal single column width (the common range is about 8.3–8.9 cm; double-column figures are about 17–18.5 cm) — so the 9-point font in the script is the 9-point font in print, with no scaling surprises. Line widths are raised from the defaults (border 1.2, curves 2) because defaults that look fine on a monitor go hairline-thin at column width. And the two series differ in both color and dash pattern, so the figure survives grayscale printing and color-vision deficiency.
The pre-export checklist
- Final size first: set the terminal
sizeto the printed column width — roughly 8.5 cm single column, 17.5 cm double column are the usual targets — and never let the journal or LaTeX scale the file afterwards. Check your journal’s author guide for its exact widths; they vary. - Vector first: submit pdfcairo, epslatex/tikz or SVG as the venue accepts. Use PNG only when raster is explicitly requested, and then export at a large pixel size with matching font sizes.
- Fonts at final size: axis labels around 9–10 pt and tic labels 8–9 pt at the exported size; if you must enlarge anything, enlarge the export, not the placed figure. One font family throughout, matching the paper where the venue asks for it.
- Line weights: data curves clearly heavier than axes and grid (for example curves at linewidth 2, border at 1–1.5, grid light or off). Print the figure once at 100 percent — if a curve disappears, it is too thin.
- Accessible color: do not encode a distinction by red versus green alone. Use a colorblind-aware palette (blue/orange is a safe pairing), and double-encode every distinction with a different dash pattern or point shape as well, so the figure also reads in black and white.
- Labels complete: every axis named with its unit, the legend (key) inside or below without covering data, and no plot title duplicating the caption the paper will add anyway.
- Data honesty: axis ranges that do not exaggerate, error bars where the paper claims uncertainty, and the script + data archived with the paper so the figure is reproducible.
- Proof at 100 percent: open the exported file — not the gnuplot window — zoom to actual print size, and check text size, line weights and overlaps there. That file is what the reviewers get.
Common mistakes
- Designing big and shrinking: a figure designed at full-monitor size and scaled to one column by the typesetter ends up with 5-point text. Designing at final size from the start (the template above) is the entire fix.
- Color-only distinctions: three solid curves in red, green and blue look obvious on screen and collapse into each other in a grayscale printout or for a color-blind reader. Dash and marker differences are free insurance.
- Default everything: gnuplot’s defaults are tuned for screen exploration, not for print. The gap between a default export and the checklist version is about ten
setlines — save them as a template file andloadit at the top of every figure script.
Related tutorials: PNG vs PDF in Gnuplot, Fonts in Gnuplot, Multiplot Layouts. See also the full Gnuplot Tutorials index.
Try it online: Draft the figure online at screen size, then apply the checklist template locally for the submission export. Paste the script into the Gnuplot Online terminal and run it in your browser — no install needed. To run gnuplot locally instead, see the installation guide and the download page.
Go deeper: For a systematic walk through gnuplot from first plots to publication-ready figures, see Gnuplot in Action by Philipp K. Janert — Janert is a gnuplot developer, and the book is the most complete tutorial reference for the program. Affiliate link: see our Affiliate Disclosure.
