This guide provides the complete specifications for preparing figures for submission to Nature and Nature Research journals. Following these guidelines ensures smooth processing and high-quality reproduction of your figures in both print and online formats.
Scale bars must be on separate layers (not flattened into the image)
Figure legends placed on a separate manuscript page after References
Example Panel Labeling
import matplotlib.pyplot as plt
import string
def add_nature_panel_labels(fig, axes):
"""Add Nature-style lowercase bold panel labels."""
if not hasattr(axes, '__iter__'):
axes = [axes]
for i, ax in enumerate(axes):
label = string.ascii_lowercase[i]
ax.text(-0.1, 1.1, label,
transform=ax.transAxes,
fontsize=8,
fontweight='bold',
va='top',
ha='right',
fontfamily='Arial')
Image Integrity and Manipulation Policy
Prohibited
Flattening scale bars into the image layer
Outlining text (must remain editable)
Adding gridlines, patterns, or drop shadows
Using colored text in graphs
Publishing copyrighted images without permission
Permitted (with transparency)
Linear brightness/contrast adjustments applied uniformly to the entire image
Color balance corrections applied to the whole image
Best Practices
Keep scale bars on separate layers for editability
Avoid busy backgrounds behind text
Remove superfluous decorative elements
Obtain permissions for all copyrighted figures
Python Quick Start: Full Validation
from PIL import Image
import os
def validate_nature_figure(image_path):
"""Full validation of a figure against Nature requirements."""
img = Image.open(image_path)
issues = []
# 1. Resolution check
dpi = img.info.get('dpi', (72, 72))
if dpi[0] < 300 or dpi[1] < 300:
issues.append(f"Resolution too low: {dpi[0]}x{dpi[1]} DPI (need 300+)")
# 2. Color mode check
if img.mode == 'CMYK':
issues.append("Color mode is CMYK; RGB is recommended for Nature")
elif img.mode not in ('RGB', 'RGBA'):
issues.append(f"Unexpected color mode: {img.mode}; use RGB")
# 3. File size check
size_mb = os.path.getsize(image_path) / (1024 * 1024)
if size_mb > 10:
issues.append(f"File size {size_mb:.1f} MB exceeds 10 MB limit")
# 4. Format check
fmt = img.format
accepted = ['TIFF', 'JPEG', 'PNG', 'EPS', 'PDF']
if fmt and fmt.upper() not in accepted:
issues.append(f"Format '{fmt}' may not be accepted; prefer TIFF or JPEG")
# Report
print(f"=== Nature Figure Validation: {os.path.basename(image_path)} ===")
print(f"Dimensions: {img.size[0]} x {img.size[1]} px")
print(f"DPI: {dpi[0]} x {dpi[1]}")
print(f"Color mode: {img.mode}")
print(f"Format: {fmt}")
print(f"File size: {size_mb:.1f} MB")
if issues:
print(f"\nISSUES FOUND ({len(issues)}):")
for issue in issues:
print(f" - {issue}")
else:
print("\nAll checks PASSED")
return len(issues) == 0
Key Concepts
Resolution and DPI
DPI (dots per inch) measures print resolution. Nature requires 300+ DPI at maximum print size. Upsampling (artificially increasing resolution in software) does not improve image quality and introduces interpolation artifacts. Always capture or export images at native high resolution.
Vector vs Raster Formats
Vector formats (AI, EPS, PDF) store images as mathematical paths and scale without quality loss — ideal for graphs, schematics, and line art. Raster formats (TIFF, JPEG, PSD) store pixel grids and degrade when enlarged — appropriate for photographs and micrographs. Nature prefers vector for line drawings and raster for photographic content.
Image Integrity
Nature enforces strict image integrity policies aligned with the Committee on Publication Ethics (COPE) guidelines. All adjustments must be applied uniformly to the entire image. Selective enhancement of specific regions (e.g., adjusting brightness on one gel lane) is considered data manipulation and grounds for rejection or retraction.
Decision Framework
What type of figure are you preparing?
├── Graph, schematic, or diagram → Vector format (AI, EPS, PDF)
│ ├── Created in Illustrator → Export as AI or EPS
│ └── Created in Python/R → Export as PDF or EPS
├── Photograph or micrograph → Raster format (TIFF, PSD, JPEG)
│ ├── Need highest quality → TIFF at 450+ DPI
│ └── File size constrained → JPEG at 300+ DPI
└── Multi-panel composite → Single assembled file
├── Mixed vector + raster → Assemble in Illustrator, export as AI/PDF
└── All raster panels → Assemble in Photoshop, export as TIFF
Scenario
Recommended Format
Resolution
Notes
Bar chart or line graph
AI, EPS, PDF
Vector (resolution-independent)
Keep text editable
Fluorescence micrograph
TIFF
450+ DPI
RGB mode, colorblind-safe palette
Western blot image
TIFF
300+ DPI
No selective adjustments
Flow chart or pathway
AI, EPS
Vector
Use Helvetica/Arial fonts
Extended Data figure
JPEG
300+ DPI
Same standards as main figures
Best Practices
Export at native resolution: Always capture or generate images at the target resolution (300+ DPI). Never upsample low-resolution images in Photoshop or similar tools
Use colorblind-friendly palettes: Nature strongly recommends accessible color schemes. Avoid red-green combinations; use blue-orange or include pattern/shape differentiation
Keep text editable in vector files: Do not outline or rasterize text in AI/EPS files. Nature's production team may need to edit fonts during typesetting
Assemble multi-panel figures before upload: Combine all panels (a, b, c, etc.) into a single image file. Individual panel uploads will be rejected
Maintain separate layers for scale bars: Scale bars must remain on a separate layer from the image data so they can be repositioned during production
Apply adjustments uniformly: Any brightness, contrast, or color correction must be applied to the entire image, not selectively to specific regions
Retain original unprocessed data: Editors or reviewers may request raw image files at any stage of review or post-publication
Common Pitfalls
Upsampling low-resolution images: Artificially increasing DPI in image software does not add real detail and introduces blurring artifacts
How to avoid: Re-export from the original source (microscope, plotting software) at 300+ DPI natively
Submitting individual panels instead of assembled figures: Nature requires multi-panel figures as a single composite file
How to avoid: Assemble all panels in Illustrator or Photoshop before uploading; use lowercase bold labels (a, b, c)
Using uppercase panel labels: Nature uses lowercase bold (a, b, c), unlike many other journals that use uppercase
How to avoid: Double-check the journal's labeling convention; Nature specifically requires lowercase
Outlining text in vector files: Converting text to outlines makes it uneditable, which Nature prohibits
How to avoid: Embed fonts as TrueType 2 or 42 instead of converting to outlines
Submitting in CMYK color mode: While accepted, CMYK narrows the color gamut and may misrepresent fluorescence data online
How to avoid: Submit in RGB; Nature handles CMYK conversion for print internally
Exceeding the 10 MB file size limit: Large TIFF files often exceed this threshold
How to avoid: Use LZW compression for TIFF files or convert to high-quality JPEG (300+ DPI)
Pre-Submission Checklist
Before submitting figures to Nature, verify:
Resolution is at least 300 DPI (450+ DPI preferred)
File format is AI, EPS, TIFF, PSD, or high-quality JPEG
Each file is under 10 MB
Multi-panel figures assembled as a single image file
Color mode is RGB (not CMYK)
Colorblind-accessible palette used
Fonts are Helvetica or Arial, 5-7 pt body, 8 pt bold panel labels
Panel labels are lowercase bold (a, b, c)
Text is NOT outlined (remains editable)
Fonts embedded as TrueType 2 or 42
Scale bars on separate layers (not flattened)
No gridlines, patterns, or drop shadows
Axes include units in parentheses
All image adjustments applied uniformly to entire image
Original unprocessed data retained for editor/reviewer requests
Copyright permissions obtained for any third-party images
1---
2name: nature-figure-guide
3description: "Nature figure preparation: resolution (300+ DPI), formats (AI/EPS/TIFF), RGB color, Helvetica/Arial fonts, lowercase panel labels, image integrity requirements."
4license: CC-BY-4.0
5compatibility: Python 3.10+, Pillow, Matplotlib
6metadata:
7 authors: HITS
8 version: "1.0"
9---
1011# Nature Figure Preparation Guide
1213## Overview
1415This guide provides the complete specifications for preparing figures for submission to **Nature** and Nature Research journals. Following these guidelines ensures smooth processing and high-quality reproduction of your figures in both print and online formats.
1617**Official reference**: https://www.nature.com/nature/for-authors/formatting-guide
1819---
2021## Resolution Requirements
2223| Image Type | Minimum Resolution | Notes |
24|---|---|---|
25| All figures | 300 DPI | At maximum print size |
26| Optimal quality | 450 DPI+ | Recommended for best online display |
27| Online submission | 300 PPI max | To keep file sizes manageable |
2829**CRITICAL**: Do NOT artificially increase resolution (upsampling) in image editing software. This does not improve quality and may introduce artifacts.
3031### Verify Resolution with Python
3233```python
34from PIL import Image
3536def check_nature_resolution(image_path):
37 """Check if image meets Nature's resolution requirements."""
38 img = Image.open(image_path)
39 width_px, height_px = img.size
40 dpi = img.info.get('dpi', (72, 72))
4142 print(f"Image: {image_path}")
43 print(f"Dimensions: {width_px} x {height_px} px")
44 print(f"DPI: {dpi[0]} x {dpi[1]}")
4546 if dpi[0] < 300 or dpi[1] < 300:
47 print("WARNING: Resolution below 300 DPI minimum")
48 print(f" Need at least 300 DPI for Nature submission")
49 elif dpi[0] >= 450:
50 print("PASS: Meets optimal resolution (450+ DPI)")
51 else:
52 print("PASS: Meets minimum resolution (300+ DPI)")
5354 # Check file size
55 import os
56 size_mb = os.path.getsize(image_path) / (1024 * 1024)
57 print(f"File size: {size_mb:.1f} MB")
58 if size_mb > 10:
59 print("WARNING: File exceeds 10 MB limit")
6061 return dpi[0] >= 300 and dpi[1] >= 300
62```
6364---
6566## File Format
6768### Preferred Formats by Figure Type
6970| Figure Type | Preferred Format | Alternative |
71|---|---|---|
72| Line drawings, graphs, schematics | Adobe Illustrator (AI), EPS, PDF | Vector formats preserve editability |
73| Photographs, micrographs | Photoshop (PSD), TIFF | High-quality raster |
74| General purpose | JPEG (300-600 DPI) | Acceptable for most figures |
75| Extended Data figures | JPEG (preferred), TIFF, EPS | |
7677### Also Accepted
78- CorelDraw (up to version 8)
79- Microsoft Word, Excel, PowerPoint
8081### File Size
82- **Maximum**: 10 MB per figure file
83- Most files should be well under this limit
8485### Important Rules
86- Multi-panel figures must be assembled into a **single image file**
87- Individual panels must NOT be uploaded separately
88- Each complete figure must be a separate file upload
8990---
9192## Figure Size and Dimensions
9394Nature does not specify fixed column widths for initial submission, but figures should be:
9596- Composed as a **single image** for multi-panel figures
97- Sized appropriately for the intended display
98- **Not** uploaded as individual panels
99100### Python: Set Figure Dimensions
101102```python
103import matplotlib.pyplot as plt
104105def create_nature_figure(n_panels=1, fig_type='single_column'):
106 """Create a Matplotlib figure sized for Nature."""
107 if fig_type == 'single_column':
108 fig_width = 3.5 # inches (approx 89 mm)
109 elif fig_type == 'double_column':
110 fig_width = 7.0 # inches (approx 178 mm)
111 else:
112 fig_width = 5.0 # 1.5 column
113114 fig_height = fig_width * 0.75 # default aspect ratio
115116 fig, axes = plt.subplots(1, n_panels, figsize=(fig_width, fig_height))
117 fig.set_dpi(450)
118119 return fig, axes
120```
121122---
123124## Color Mode
125126- **RGB recommended** (wider color gamut; faithful reproduction of fluorescent colors online)
127- CMYK also accepted (converted for print automatically)
128- **Accessibility**: Use colorblind-friendly palettes
129130### Recommended Colorblind-Safe Palette
131132```python
133# Nature-friendly colorblind-safe colors
134NATURE_COLORS = {
135 'blue': '#0072B2',
136 'orange': '#E69F00',
137 'green': '#009E73',
138 'red': '#D55E00',
139 'purple': '#CC79A7',
140 'cyan': '#56B4E9',
141 'yellow': '#F0E442',
142 'black': '#000000',
143}
144```
145146---
147148## Font Requirements
149150| Element | Font | Size | Style |
151|---|---|---|---|
152| Body text in figures | Helvetica or Arial | 5-7 pt | Regular |
153| Panel labels | Helvetica or Arial | 8 pt | **Bold, lowercase** (a, b, c) |
154| Amino acid sequences | Courier | — | Monospace |
155| Greek characters | Symbol | — | — |
156157### Critical Rules
158- Use **sans-serif** fonts only (Helvetica or Arial)
159- **Do NOT outline text** — text must remain editable
160- Embed fonts as TrueType 2 or 42 (NOT TrueType 3)
161- Panel labels: **lowercase bold letters** (a, b, c — not A, B, C)
162163### Python: Apply Nature Font Settings
164165```python
166import matplotlib.pyplot as plt
167168def set_nature_fonts():
169 """Configure Matplotlib for Nature figure fonts."""
170 plt.rcParams.update({
171 'font.family': 'sans-serif',
172 'font.sans-serif': ['Helvetica', 'Arial'],
173 'font.size': 7,
174 'axes.labelsize': 7,
175 'axes.titlesize': 7,
176 'xtick.labelsize': 6,
177 'ytick.labelsize': 6,
178 'legend.fontsize': 6,
179 'figure.titlesize': 8,
180 })
181```
182183---
184185## Labeling Conventions
186187### Figure Numbering
188- Sequential: Figure 1, Figure 2, Figure 3, etc.
189- All figures must be cited in the text in order
190191### Panel Labels
192- **Lowercase bold letters**: a, b, c, d, ...
193- Font size: **8 pt bold**
194- Position: top-left corner of each panel
195196### Axes and Legends
197- Include **units in parentheses** on all axes
198- Scale bars must be on **separate layers** (not flattened into the image)
199- Figure legends placed on a separate manuscript page after References
200201### Example Panel Labeling
202203```python
204import matplotlib.pyplot as plt
205import string
206207def add_nature_panel_labels(fig, axes):
208 """Add Nature-style lowercase bold panel labels."""
209 if not hasattr(axes, '__iter__'):
210 axes = [axes]
211212 for i, ax in enumerate(axes):
213 label = string.ascii_lowercase[i]
214 ax.text(-0.1, 1.1, label,
215 transform=ax.transAxes,
216 fontsize=8,
217 fontweight='bold',
218 va='top',
219 ha='right',
220 fontfamily='Arial')
221```
222223---
224225## Image Integrity and Manipulation Policy
226227### Prohibited
228- Flattening scale bars into the image layer
229- Outlining text (must remain editable)
230- Adding gridlines, patterns, or drop shadows
231- Using colored text in graphs
232- Publishing copyrighted images without permission
233234### Permitted (with transparency)
235- Linear brightness/contrast adjustments applied **uniformly to the entire image**
236- Color balance corrections applied to the **whole image**
237238### Best Practices
239- Keep scale bars on separate layers for editability
240- Avoid busy backgrounds behind text
241- Remove superfluous decorative elements
242- Obtain permissions for all copyrighted figures
243244---
245246## Python Quick Start: Full Validation
247248```python
249from PIL import Image
250import os
251252def validate_nature_figure(image_path):
253 """Full validation of a figure against Nature requirements."""
254 img = Image.open(image_path)
255 issues = []
256257 # 1. Resolution check
258 dpi = img.info.get('dpi', (72, 72))
259 if dpi[0] < 300 or dpi[1] < 300:
260 issues.append(f"Resolution too low: {dpi[0]}x{dpi[1]} DPI (need 300+)")
261262 # 2. Color mode check
263 if img.mode == 'CMYK':
264 issues.append("Color mode is CMYK; RGB is recommended for Nature")
265 elif img.mode not in ('RGB', 'RGBA'):
266 issues.append(f"Unexpected color mode: {img.mode}; use RGB")
267268 # 3. File size check
269 size_mb = os.path.getsize(image_path) / (1024 * 1024)
270 if size_mb > 10:
271 issues.append(f"File size {size_mb:.1f} MB exceeds 10 MB limit")
272273 # 4. Format check
274 fmt = img.format
275 accepted = ['TIFF', 'JPEG', 'PNG', 'EPS', 'PDF']
276 if fmt and fmt.upper() not in accepted:
277 issues.append(f"Format '{fmt}' may not be accepted; prefer TIFF or JPEG")
278279 # Report
280 print(f"=== Nature Figure Validation: {os.path.basename(image_path)} ===")
281 print(f"Dimensions: {img.size[0]} x {img.size[1]} px")
282 print(f"DPI: {dpi[0]} x {dpi[1]}")
283 print(f"Color mode: {img.mode}")
284 print(f"Format: {fmt}")
285 print(f"File size: {size_mb:.1f} MB")
286287 if issues:
288 print(f"\nISSUES FOUND ({len(issues)}):")
289 for issue in issues:
290 print(f" - {issue}")
291 else:
292 print("\nAll checks PASSED")
293294 return len(issues) == 0
295```
296297---
298299## Key Concepts
300301### Resolution and DPI
302303DPI (dots per inch) measures print resolution. Nature requires 300+ DPI at maximum print size. Upsampling (artificially increasing resolution in software) does not improve image quality and introduces interpolation artifacts. Always capture or export images at native high resolution.
304305### Vector vs Raster Formats
306307Vector formats (AI, EPS, PDF) store images as mathematical paths and scale without quality loss — ideal for graphs, schematics, and line art. Raster formats (TIFF, JPEG, PSD) store pixel grids and degrade when enlarged — appropriate for photographs and micrographs. Nature prefers vector for line drawings and raster for photographic content.
308309### Image Integrity
310311Nature enforces strict image integrity policies aligned with the Committee on Publication Ethics (COPE) guidelines. All adjustments must be applied uniformly to the entire image. Selective enhancement of specific regions (e.g., adjusting brightness on one gel lane) is considered data manipulation and grounds for rejection or retraction.
312313## Decision Framework
314315```
316What type of figure are you preparing?
317├── Graph, schematic, or diagram → Vector format (AI, EPS, PDF)
318│ ├── Created in Illustrator → Export as AI or EPS
319│ └── Created in Python/R → Export as PDF or EPS
320├── Photograph or micrograph → Raster format (TIFF, PSD, JPEG)
321│ ├── Need highest quality → TIFF at 450+ DPI
322│ └── File size constrained → JPEG at 300+ DPI
323└── Multi-panel composite → Single assembled file
324 ├── Mixed vector + raster → Assemble in Illustrator, export as AI/PDF
325 └── All raster panels → Assemble in Photoshop, export as TIFF
326```
327328| Scenario | Recommended Format | Resolution | Notes |
329|---|---|---|---|
330| Bar chart or line graph | AI, EPS, PDF | Vector (resolution-independent) | Keep text editable |
331| Fluorescence micrograph | TIFF | 450+ DPI | RGB mode, colorblind-safe palette |
332| Western blot image | TIFF | 300+ DPI | No selective adjustments |
333| Flow chart or pathway | AI, EPS | Vector | Use Helvetica/Arial fonts |
334| Extended Data figure | JPEG | 300+ DPI | Same standards as main figures |
335336## Best Practices
3373381. **Export at native resolution**: Always capture or generate images at the target resolution (300+ DPI). Never upsample low-resolution images in Photoshop or similar tools
3392. **Use colorblind-friendly palettes**: Nature strongly recommends accessible color schemes. Avoid red-green combinations; use blue-orange or include pattern/shape differentiation
3403. **Keep text editable in vector files**: Do not outline or rasterize text in AI/EPS files. Nature's production team may need to edit fonts during typesetting
3414. **Assemble multi-panel figures before upload**: Combine all panels (a, b, c, etc.) into a single image file. Individual panel uploads will be rejected
3425. **Maintain separate layers for scale bars**: Scale bars must remain on a separate layer from the image data so they can be repositioned during production
3436. **Apply adjustments uniformly**: Any brightness, contrast, or color correction must be applied to the entire image, not selectively to specific regions
3447. **Retain original unprocessed data**: Editors or reviewers may request raw image files at any stage of review or post-publication
345346## Common Pitfalls
3473481. **Upsampling low-resolution images**: Artificially increasing DPI in image software does not add real detail and introduces blurring artifacts
349 - *How to avoid*: Re-export from the original source (microscope, plotting software) at 300+ DPI natively
3502. **Submitting individual panels instead of assembled figures**: Nature requires multi-panel figures as a single composite file
351 - *How to avoid*: Assemble all panels in Illustrator or Photoshop before uploading; use lowercase bold labels (a, b, c)
3523. **Using uppercase panel labels**: Nature uses lowercase bold (a, b, c), unlike many other journals that use uppercase
353 - *How to avoid*: Double-check the journal's labeling convention; Nature specifically requires lowercase
3544. **Outlining text in vector files**: Converting text to outlines makes it uneditable, which Nature prohibits
355 - *How to avoid*: Embed fonts as TrueType 2 or 42 instead of converting to outlines
3565. **Submitting in CMYK color mode**: While accepted, CMYK narrows the color gamut and may misrepresent fluorescence data online
357 - *How to avoid*: Submit in RGB; Nature handles CMYK conversion for print internally
3586. **Exceeding the 10 MB file size limit**: Large TIFF files often exceed this threshold
359 - *How to avoid*: Use LZW compression for TIFF files or convert to high-quality JPEG (300+ DPI)
360361---
362363## Pre-Submission Checklist
364365Before submitting figures to Nature, verify:
366367- [ ] Resolution is at least 300 DPI (450+ DPI preferred)
368- [ ] File format is AI, EPS, TIFF, PSD, or high-quality JPEG
369- [ ] Each file is under 10 MB
370- [ ] Multi-panel figures assembled as a single image file
371- [ ] Color mode is RGB (not CMYK)
372- [ ] Colorblind-accessible palette used
373- [ ] Fonts are Helvetica or Arial, 5-7 pt body, 8 pt bold panel labels
374- [ ] Panel labels are lowercase bold (a, b, c)
375- [ ] Text is NOT outlined (remains editable)
376- [ ] Fonts embedded as TrueType 2 or 42
377- [ ] Scale bars on separate layers (not flattened)
378- [ ] No gridlines, patterns, or drop shadows
379- [ ] Axes include units in parentheses
380- [ ] All image adjustments applied uniformly to entire image
381- [ ] Original unprocessed data retained for editor/reviewer requests
382- [ ] Copyright permissions obtained for any third-party images
383384---
385386## References
387388- Nature Formatting Guide: https://www.nature.com/nature/for-authors/formatting-guide
389- Nature Final Submission: https://www.nature.com/nature/for-authors/final-submission
390- Nature Research Figure Guide: https://research-figure-guide.nature.com/figures/preparing-figures-our-specifications/
Run npx skillmds@latest add gabrielmoreira/nature-figure-guide in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
Nature figure preparation: resolution (300+ DPI), formats (AI/EPS/TIFF), RGB color, Helvetica/Arial fonts, lowercase panel labels, image integrity requirements. It is listed under Coding & Dev Tools on SkillMD.
This skill has not completed SkillMD's automated safety review yet. Independent scanners report: SkillSpector: PASS, Skill Scanner: PASS. Capability flags: makes network calls. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Yes. Installing skills from SkillMD is free. This skill is licensed under CC-BY-4.
gabrielmoreira (@gabrielmoreira) published this skill. Their other Agent Skills are listed on their SkillMD profile.