Generating Publication Ready Figures In R
by @jackkuo666
Transform standard ggplot2 figures into publication-quality visualizations matching Nature, Science, and other top journal styles with proper themes, colors,...
clawhub install generating-publication-ready-figures-in-rπ About This Skill
name: generating-publication-ready-figures-in-r description: Transform standard ggplot2 figures into publication-quality visualizations matching Nature, Science, and other top journal styles with proper themes, colors, fonts, and export settings.
Generating Publication-Ready Figures in R
This skill specializes in transforming ordinary ggplot2 plots into professional, publication-ready figures that meet the strict standards of top-tier journals like Nature, Science, Cell, and others.
Use this skill when the user wants to:
What This Skill Does
When activated, this skill will:
1. Analyze existing ggplot code - Read and understand the current plot structure
2. Apply journal themes - Add publication-quality themes including: - Proper font sizes and families - Clean axis lines and backgrounds - Journal-specific color palettes - Legend positioning and styling
3. Optimize for submission - Ensure figures meet: - DPI requirements (typically 300-600 DPI) - Width/height specifications (single vs double column) - File format requirements (TIFF, PDF, EPS) - Color space requirements (CMYK vs RGB)
4. Create multi-panel figures - Combine plots using:
- patchwork for simple layouts
- cowplot for complex compositions
- Custom annotation and labeling
5. Export properly - Save with correct: - Resolution (DPI) - Dimensions (inches/cm) - File format - Color profile
Example User Requests That Should Trigger This Skill
Journal Style Guidelines
Nature Style
Science Style
Cell Press Style
Theme Templates Available
theme_nature()
Clean, minimalist theme matching Nature journals:
theme_science()
Theme for Science journal submissions:
theme_cellpress()
Cell Press journal theme:
theme_colorblind()
Colorblind-safe palette with:
Color Palettes
Nature-Approved Colors
# Primary colors
nature_colors <- c(
blue = "#3B4992",
red = "#EE0000",
green = "#008B45",
purple = "#631879"
)
Colorblind-Safe Scales
scale_fill_viridis()scale_color_okabe_ito() (Okabe-Ito palette)scale_color_viridis()Example Workflow
User: Here's my ggplot code, make it Nature-style.
# Original plot
p <- ggplot(mtcars, aes(x = wt, y = mpg, color = factor(cyl))) +
geom_point(size = 3)
Skill transforms to:
# Publication-ready version
p <- ggplot(mtcars, aes(x = "Weight (tons)", y = "Fuel Efficiency (mpg)",
color = "Cylinders")) +
geom_point(size = 2.5, shape = 16, alpha = 0.8) +
scale_color_nature() +
theme_nature(base_size = 8) +
labs(title = NULL)Export at correct size
ggsave("figure1.pdf", p, width = 3.5, height = 3, dpi = 300,
device = "pdf")
Multi-Panel Figures
# Combine plots with patchwork
library(patchwork)figure1 <- (panel_a | panel_b) / (panel_c | panel_d)
Add panel labels
figure1 <- figure1 +
plot_annotation(tag_levels = "A",
tag_suffix = ")")Export
ggsave("figure1.pdf", figure1, width = 7, height = 6, dpi = 300)
Tools & Packages Commonly Used
| Purpose | R Packages | |--------|------------| | Base plotting | ggplot2 | | Themes | ggplot2, cowplot, hrbrthemes | | Color palettes | viridis, RColorBrewer, scales, ggsci | | Multi-panel | patchwork, cowplot, ggpubr | | Export | ggplot2, ragg | | Fonts | extrafont, showtext | | Annotations | ggrepel, ggpp |
Common Journal Requirements
| Journal | Width (single) | Width (double) | Max Height | Min DPI | |---------|---------------|----------------|------------|---------| | Nature | 89 mm | 183 mm | 234 mm | 300 | | Science | 57 mm | 114 mm | 229 mm | 300 | | Cell | 85 mm | 178 mm | 229 mm | 300 | | PNAS | 87 mm | 178 mm | 227 mm | 300 | | PLOS ONE | 170 mm | - | 230 mm | 300 | | eLife | 183 mm | - | 244 mm | 300 |
Quick Reference
Applying a theme
p + theme_nature() # Nature style
p + theme_science() # Science style
p + theme_cellpress() # Cell Press style
p + theme_colorblind() # Colorblind-safe
Export formats
# Vector (preferred)
ggsave("figure.pdf", ... device = "pdf")
ggsave("figure.eps", ... device = "eps")Raster (high DPI)
ggsave("figure.tiff", ... device = "tiff", dpi = 600)
ggsave("figure.png", ... device = "png", dpi = 300)
Common fixes
base_size in themetheme(legend.position = "bottom")scale_fill_viridis()extrafont::font_import()Notes
colorblindr packageπ Tips & Best Practices
colorblindr package