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-guide3description: 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.05---67# Nature Figure Preparation Guide
89## Overview
1011This 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.
1213**Official reference**: https://www.nature.com/nature/for-authors/formatting-guide
1415---
1617## Resolution Requirements
1819| Image Type | Minimum Resolution | Notes |
20|---|---|---|
21| All figures | 300 DPI | At maximum print size |
22| Optimal quality | 450 DPI+ | Recommended for best online display |
23| Online submission | 300 PPI max | To keep file sizes manageable |
2425**CRITICAL**: Do NOT artificially increase resolution (upsampling) in image editing software. This does not improve quality and may introduce artifacts.
2627### Verify Resolution with Python
2829```python
30from PIL import Image
3132def check_nature_resolution(image_path):
33 """Check if image meets Nature's resolution requirements."""
34 img = Image.open(image_path)
35 width_px, height_px = img.size
36 dpi = img.info.get('dpi', (72, 72))
3738 print(f"Image: {image_path}")
39 print(f"Dimensions: {width_px} x {height_px} px")
40 print(f"DPI: {dpi[0]} x {dpi[1]}")
4142 if dpi[0] < 300 or dpi[1] < 300:
43 print("WARNING: Resolution below 300 DPI minimum")
44 print(f" Need at least 300 DPI for Nature submission")
45 elif dpi[0] >= 450:
46 print("PASS: Meets optimal resolution (450+ DPI)")
47 else:
48 print("PASS: Meets minimum resolution (300+ DPI)")
4950 # Check file size
51 import os
52 size_mb = os.path.getsize(image_path) / (1024 * 1024)
53 print(f"File size: {size_mb:.1f} MB")
54 if size_mb > 10:
55 print("WARNING: File exceeds 10 MB limit")
5657 return dpi[0] >= 300 and dpi[1] >= 300
58```
5960---
6162## File Format
6364### Preferred Formats by Figure Type
6566| Figure Type | Preferred Format | Alternative |
67|---|---|---|
68| Line drawings, graphs, schematics | Adobe Illustrator (AI), EPS, PDF | Vector formats preserve editability |
69| Photographs, micrographs | Photoshop (PSD), TIFF | High-quality raster |
70| General purpose | JPEG (300-600 DPI) | Acceptable for most figures |
71| Extended Data figures | JPEG (preferred), TIFF, EPS | |
7273### Also Accepted
74- CorelDraw (up to version 8)
75- Microsoft Word, Excel, PowerPoint
7677### File Size
78- **Maximum**: 10 MB per figure file
79- Most files should be well under this limit
8081### Important Rules
82- Multi-panel figures must be assembled into a **single image file**
83- Individual panels must NOT be uploaded separately
84- Each complete figure must be a separate file upload
8586---
8788## Figure Size and Dimensions
8990Nature does not specify fixed column widths for initial submission, but figures should be:
9192- Composed as a **single image** for multi-panel figures
93- Sized appropriately for the intended display
94- **Not** uploaded as individual panels
9596### Python: Set Figure Dimensions
9798```python
99import matplotlib.pyplot as plt
100101def create_nature_figure(n_panels=1, fig_type='single_column'):
102 """Create a Matplotlib figure sized for Nature."""
103 if fig_type == 'single_column':
104 fig_width = 3.5 # inches (approx 89 mm)
105 elif fig_type == 'double_column':
106 fig_width = 7.0 # inches (approx 178 mm)
107 else:
108 fig_width = 5.0 # 1.5 column
109110 fig_height = fig_width * 0.75 # default aspect ratio
111112 fig, axes = plt.subplots(1, n_panels, figsize=(fig_width, fig_height))
113 fig.set_dpi(450)
114115 return fig, axes
116```
117118---
119120## Color Mode
121122- **RGB recommended** (wider color gamut; faithful reproduction of fluorescent colors online)
123- CMYK also accepted (converted for print automatically)
124- **Accessibility**: Use colorblind-friendly palettes
125126### Recommended Colorblind-Safe Palette
127128```python
129# Nature-friendly colorblind-safe colors
130NATURE_COLORS = {
131 'blue': '#0072B2',
132 'orange': '#E69F00',
133 'green': '#009E73',
134 'red': '#D55E00',
135 'purple': '#CC79A7',
136 'cyan': '#56B4E9',
137 'yellow': '#F0E442',
138 'black': '#000000',
139}
140```
141142---
143144## Font Requirements
145146| Element | Font | Size | Style |
147|---|---|---|---|
148| Body text in figures | Helvetica or Arial | 5-7 pt | Regular |
149| Panel labels | Helvetica or Arial | 8 pt | **Bold, lowercase** (a, b, c) |
150| Amino acid sequences | Courier | — | Monospace |
151| Greek characters | Symbol | — | — |
152153### Critical Rules
154- Use **sans-serif** fonts only (Helvetica or Arial)
155- **Do NOT outline text** — text must remain editable
156- Embed fonts as TrueType 2 or 42 (NOT TrueType 3)
157- Panel labels: **lowercase bold letters** (a, b, c — not A, B, C)
158159### Python: Apply Nature Font Settings
160161```python
162import matplotlib.pyplot as plt
163164def set_nature_fonts():
165 """Configure Matplotlib for Nature figure fonts."""
166 plt.rcParams.update({
167 'font.family': 'sans-serif',
168 'font.sans-serif': ['Helvetica', 'Arial'],
169 'font.size': 7,
170 'axes.labelsize': 7,
171 'axes.titlesize': 7,
172 'xtick.labelsize': 6,
173 'ytick.labelsize': 6,
174 'legend.fontsize': 6,
175 'figure.titlesize': 8,
176 })
177```
178179---
180181## Labeling Conventions
182183### Figure Numbering
184- Sequential: Figure 1, Figure 2, Figure 3, etc.
185- All figures must be cited in the text in order
186187### Panel Labels
188- **Lowercase bold letters**: a, b, c, d, ...
189- Font size: **8 pt bold**
190- Position: top-left corner of each panel
191192### Axes and Legends
193- Include **units in parentheses** on all axes
194- Scale bars must be on **separate layers** (not flattened into the image)
195- Figure legends placed on a separate manuscript page after References
196197### Example Panel Labeling
198199```python
200import matplotlib.pyplot as plt
201import string
202203def add_nature_panel_labels(fig, axes):
204 """Add Nature-style lowercase bold panel labels."""
205 if not hasattr(axes, '__iter__'):
206 axes = [axes]
207208 for i, ax in enumerate(axes):
209 label = string.ascii_lowercase[i]
210 ax.text(-0.1, 1.1, label,
211 transform=ax.transAxes,
212 fontsize=8,
213 fontweight='bold',
214 va='top',
215 ha='right',
216 fontfamily='Arial')
217```
218219---
220221## Image Integrity and Manipulation Policy
222223### Prohibited
224- Flattening scale bars into the image layer
225- Outlining text (must remain editable)
226- Adding gridlines, patterns, or drop shadows
227- Using colored text in graphs
228- Publishing copyrighted images without permission
229230### Permitted (with transparency)
231- Linear brightness/contrast adjustments applied **uniformly to the entire image**
232- Color balance corrections applied to the **whole image**
233234### Best Practices
235- Keep scale bars on separate layers for editability
236- Avoid busy backgrounds behind text
237- Remove superfluous decorative elements
238- Obtain permissions for all copyrighted figures
239240---
241242## Python Quick Start: Full Validation
243244```python
245from PIL import Image
246import os
247248def validate_nature_figure(image_path):
249 """Full validation of a figure against Nature requirements."""
250 img = Image.open(image_path)
251 issues = []
252253 # 1. Resolution check
254 dpi = img.info.get('dpi', (72, 72))
255 if dpi[0] < 300 or dpi[1] < 300:
256 issues.append(f"Resolution too low: {dpi[0]}x{dpi[1]} DPI (need 300+)")
257258 # 2. Color mode check
259 if img.mode == 'CMYK':
260 issues.append("Color mode is CMYK; RGB is recommended for Nature")
261 elif img.mode not in ('RGB', 'RGBA'):
262 issues.append(f"Unexpected color mode: {img.mode}; use RGB")
263264 # 3. File size check
265 size_mb = os.path.getsize(image_path) / (1024 * 1024)
266 if size_mb > 10:
267 issues.append(f"File size {size_mb:.1f} MB exceeds 10 MB limit")
268269 # 4. Format check
270 fmt = img.format
271 accepted = ['TIFF', 'JPEG', 'PNG', 'EPS', 'PDF']
272 if fmt and fmt.upper() not in accepted:
273 issues.append(f"Format '{fmt}' may not be accepted; prefer TIFF or JPEG")
274275 # Report
276 print(f"=== Nature Figure Validation: {os.path.basename(image_path)} ===")
277 print(f"Dimensions: {img.size[0]} x {img.size[1]} px")
278 print(f"DPI: {dpi[0]} x {dpi[1]}")
279 print(f"Color mode: {img.mode}")
280 print(f"Format: {fmt}")
281 print(f"File size: {size_mb:.1f} MB")
282283 if issues:
284 print(f"\nISSUES FOUND ({len(issues)}):")
285 for issue in issues:
286 print(f" - {issue}")
287 else:
288 print("\nAll checks PASSED")
289290 return len(issues) == 0
291```
292293---
294295## Key Concepts
296297### Resolution and DPI
298299DPI (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.
300301### Vector vs Raster Formats
302303Vector 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.
304305### Image Integrity
306307Nature 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.
308309## Decision Framework
310311```
312What type of figure are you preparing?
313├── Graph, schematic, or diagram → Vector format (AI, EPS, PDF)
314│ ├── Created in Illustrator → Export as AI or EPS
315│ └── Created in Python/R → Export as PDF or EPS
316├── Photograph or micrograph → Raster format (TIFF, PSD, JPEG)
317│ ├── Need highest quality → TIFF at 450+ DPI
318│ └── File size constrained → JPEG at 300+ DPI
319└── Multi-panel composite → Single assembled file
320 ├── Mixed vector + raster → Assemble in Illustrator, export as AI/PDF
321 └── All raster panels → Assemble in Photoshop, export as TIFF
322```
323324| Scenario | Recommended Format | Resolution | Notes |
325|---|---|---|---|
326| Bar chart or line graph | AI, EPS, PDF | Vector (resolution-independent) | Keep text editable |
327| Fluorescence micrograph | TIFF | 450+ DPI | RGB mode, colorblind-safe palette |
328| Western blot image | TIFF | 300+ DPI | No selective adjustments |
329| Flow chart or pathway | AI, EPS | Vector | Use Helvetica/Arial fonts |
330| Extended Data figure | JPEG | 300+ DPI | Same standards as main figures |
331332## Best Practices
3333341. **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
3352. **Use colorblind-friendly palettes**: Nature strongly recommends accessible color schemes. Avoid red-green combinations; use blue-orange or include pattern/shape differentiation
3363. **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
3374. **Assemble multi-panel figures before upload**: Combine all panels (a, b, c, etc.) into a single image file. Individual panel uploads will be rejected
3385. **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
3396. **Apply adjustments uniformly**: Any brightness, contrast, or color correction must be applied to the entire image, not selectively to specific regions
3407. **Retain original unprocessed data**: Editors or reviewers may request raw image files at any stage of review or post-publication
341342## Common Pitfalls
3433441. **Upsampling low-resolution images**: Artificially increasing DPI in image software does not add real detail and introduces blurring artifacts
345 - *How to avoid*: Re-export from the original source (microscope, plotting software) at 300+ DPI natively
3462. **Submitting individual panels instead of assembled figures**: Nature requires multi-panel figures as a single composite file
347 - *How to avoid*: Assemble all panels in Illustrator or Photoshop before uploading; use lowercase bold labels (a, b, c)
3483. **Using uppercase panel labels**: Nature uses lowercase bold (a, b, c), unlike many other journals that use uppercase
349 - *How to avoid*: Double-check the journal's labeling convention; Nature specifically requires lowercase
3504. **Outlining text in vector files**: Converting text to outlines makes it uneditable, which Nature prohibits
351 - *How to avoid*: Embed fonts as TrueType 2 or 42 instead of converting to outlines
3525. **Submitting in CMYK color mode**: While accepted, CMYK narrows the color gamut and may misrepresent fluorescence data online
353 - *How to avoid*: Submit in RGB; Nature handles CMYK conversion for print internally
3546. **Exceeding the 10 MB file size limit**: Large TIFF files often exceed this threshold
355 - *How to avoid*: Use LZW compression for TIFF files or convert to high-quality JPEG (300+ DPI)
356357---
358359## Pre-Submission Checklist
360361Before submitting figures to Nature, verify:
362363- [ ] Resolution is at least 300 DPI (450+ DPI preferred)
364- [ ] File format is AI, EPS, TIFF, PSD, or high-quality JPEG
365- [ ] Each file is under 10 MB
366- [ ] Multi-panel figures assembled as a single image file
367- [ ] Color mode is RGB (not CMYK)
368- [ ] Colorblind-accessible palette used
369- [ ] Fonts are Helvetica or Arial, 5-7 pt body, 8 pt bold panel labels
370- [ ] Panel labels are lowercase bold (a, b, c)
371- [ ] Text is NOT outlined (remains editable)
372- [ ] Fonts embedded as TrueType 2 or 42
373- [ ] Scale bars on separate layers (not flattened)
374- [ ] No gridlines, patterns, or drop shadows
375- [ ] Axes include units in parentheses
376- [ ] All image adjustments applied uniformly to entire image
377- [ ] Original unprocessed data retained for editor/reviewer requests
378- [ ] Copyright permissions obtained for any third-party images
379380---
381382## References
383384- Nature Formatting Guide: https://www.nature.com/nature/for-authors/formatting-guide
385- Nature Final Submission: https://www.nature.com/nature/for-authors/final-submission
386- 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. 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.