Menu

SCIENTIFIC FIGURES

Multi-Panel Figure Maker

Compose A, B, C, D panel layouts with exact journal column widths - from 2x2 grids to asymmetric GridSpec designs sized for Nature, Science, and ACS submissions.

Essential Multi-Panel Visualizations

Publication figures require careful panel composition - balancing subplot ratios, sharing axes across related panels, and positioning panel labels at journal-standard offsets. GridSpec gives you precise control over every panel boundary.

2x2 GridSpec

Four panel layout with equal columns for comparison figures arranged A, B, C, D

Asymmetric Layout

Wide main panel and two narrow side panels for summary figures with dominant visualization

Shared Axes

Synchronized x/y axes across panels for time series comparison without duplicate tick labels

Inset Zoom

Magnified inset within a main panel highlights fine resolution detail at publication scale

Letter Labels

Automatic A, B, C, D panel labels at correct offset and font size per journal guidelines

Mixed Plot Types

Scatter, bar, histogram, and line in one figure with consistent styling across all panels

Why Researchers Use Plotivy for Multi-Panel Figures

Journal Column Widths

Figures sized to exact single (88 mm) or double (178 mm) column for Nature, Science, and ACS - no manual resizing in Illustrator.

Panel Letter Automation

A, B, C, D labels placed consistently with correct font size and offset using a single helper function across all panels.

GridSpec Flexibility

Row and column spanning for asymmetric multi-panel layouts used in main figures - no fixed grid required.

Shared Style Tokens

All panels inherit the same font, linewidth, and tick settings from a single rcParams block for visual coherence.

2x2 GridSpec Multi-Panel Figure

A classic 2x2 layout using matplotlib.gridspec sized to Nature double-column width (178 mm). Panel labels a, b, c, d are placed via a reusable helper function at consistent offsets.

Live Code Editor
Code EditorPython
Loading editor...
Live Preview

Preparing preview

Running once automatically on first load

Learn by Experimenting

This is a safe playground for learning! Try changing:

  • • Colors: Modify color values to see different palettes
  • • Numbers: Adjust sizes, positions, or data ranges
  • • Labels: Update titles, axis names, or legends

Edit the code, run it, then open the full data visualization tool to continue with your own dataset.

Asymmetric 3-Panel Signal Analysis Figure

A dominant wide panel on the left occupies two-thirds of the figure while two smaller panels on the right show derived analyses. The asymmetric GridSpec layout is common in electrophysiology and signal processing papers where the time series is the primary result.

Live Code Editor
Code EditorPython
Loading editor...
Live Preview

Preparing preview

Running once automatically on first load

Learn by Experimenting

This is a safe playground for learning! Try changing:

  • • Colors: Modify color values to see different palettes
  • • Numbers: Adjust sizes, positions, or data ranges
  • • Labels: Update titles, axis names, or legends

Edit the code, run it, then open the full data visualization tool to continue with your own dataset.

Chart gallery

Explore Figure Types

Interactive examples with ready-to-run code

Browse all chart types →
Bar chart comparing average scores across 5 groups with error bars
Comparison•matplotlib, seaborn
From the chart gallery•Comparing performance across categories

Bar Chart

Compares categorical data using rectangular bars with heights proportional to values.

Sample code / prompt

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from scipy import stats

# Generate performance scores for 5 treatment groups
np.random.seed(42)
groups = ['Control', 'Treatment A', 'Treatment B', 'Treatment C', 'Treatment D']
n_samples = 30
Correlation heatmap with diverging color scale and coefficient annotations
Statistical•seaborn, matplotlib
From the chart gallery•Correlation analysis between variables

Heatmap

Represents data values as colors in a two-dimensional matrix format.

Sample code / prompt

import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
import numpy as np

# Create correlation matrix for financial metrics
metrics = ['Revenue', 'Profit', 'Expenses', 'ROI', 'Customers', 'AOV', 'Marketing', 'Employees']
correlation_data = np.array([
    [1.00, 0.85, -0.45, 0.72, 0.88, 0.65, 0.72, 0.55],
    [0.85, 1.00, -0.78, 0.92, 0.75, 0.58, 0.63, 0.48],
Violin plot comparing score distributions across 3 groups with inner box plots
Distribution•seaborn, matplotlib
From the chart gallery•Comparing treatment effects across groups

Violin Plot

Combines box plots with kernel density to show distribution shape across groups.

Sample code / prompt

import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
import numpy as np
from scipy.stats import f_oneway

# Generate exam score data for 3 groups
np.random.seed(42)
control = np.random.normal(72, 12, 50)
treatment_a = np.random.normal(78, 10, 50)

Ready to Compose Your Figure?

Upload your data, describe the panel layout you need, and get a publication-ready multi-panel figure with full Python code in seconds.

Start Free - No Sign-Up