Agent skill

Publication Figures Guide

by wentorai in wentorai/research-plugins

Create journal-quality scientific figures with proper styling and accessibility

MITAuto-check passedData & Analytics

Install Publication Figures Guide

skills CLI
$ npx skills add wentorai/research-plugins --skill publication-figures-guide -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install wentorai/research-plugins publication-figures-guide --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/wentorai/research-plugins.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/analysis/dataviz/publication-figures-guide .claude/skills/publication-figures-guide && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
publication-figures-guide
GitHub stars
298
Used in
1 other repo
Token cost
~2k tokens
SKILL.md length
209 words
Files
1
Skills in repo
405
Repo updated
First seen
Licence
MIT

At a glance

Create journal-quality scientific figures with proper styling and accessibility

  • Works in 5 steps: Vector formats first: Use PDF or EPS for… → Font embedding: Ensure all fonts are… → Check at print size: View the figure at… → …
  • Tasks that involve Data visualization
  • SKILL.md covers Journal Figure Requirements, Colorblind-Friendly Palettes, Common Figure Types and Multi-Panel Figures, plus 1 more section
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Publication Figures Guide is an agent skill from wentorai/research-plugins. Create journal-quality scientific figures with proper styling and accessibility

Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Data & Analytics, covering Data visualization. The repository describes itself as: 350+ academic research skills, MCP configs, and plugins for Research-Claw and AI agents. The licence is MIT.

When your agent uses it

  • Tasks that involve Data visualization

Example prompts

  • “/publication-figures-guide”

Requirements

  • Python 3

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Vector formats first: Use PDF or EPS for line art and charts; TIFF only for photographs
  2. Font embedding: Ensure all fonts are embedded (use plt.rcParams['pdf.fonttype'] = 42)
  3. Check at print size: View the figure at actual print size (3.3in wide) to verify readability
  4. CMYK conversion: For print journals, convert RGB to CMYK using ImageMagick or Photoshop
  5. Consistent styling: All figures in a paper should use the same fonts, colors, and styling

What it can do on your machine

Read from SKILL.md and the folder at commit bf44b3c. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are python).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Publication Figures Guide loads about 2k tokens when it runs. Until then it costs about 26 tokens; SKILL.md has 209 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~26
When it runs · the whole SKILL.md, loaded when a task matches
~2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from wentorai/research-plugins at commit bf44b3c, republished under its MIT licence (© wentorai). 209 words, ~1,966 tokens.

Download SKILL.mdSave it as .claude/skills/publication-figures-guide/SKILL.md (or your agent's skills folder).
name
publication-figures-guide
description
Create journal-quality scientific figures with proper styling and accessibility

Publication Figures Guide

A skill for creating publication-quality scientific figures that meet journal standards for resolution, formatting, accessibility, and visual clarity. Covers matplotlib, seaborn, and ggplot2 workflows with journal-ready export settings.

Journal Figure Requirements

Common Standards
RequirementTypical SpecNotes
Resolution300-600 DPI300 DPI minimum for print
File formatPDF, EPS, TIFFVector (PDF/EPS) preferred
Color modeCMYK for print, RGB for onlineCheck journal spec
Max widthSingle column: 3.3in / Double: 6.7inVaries by journal
Font size6-8pt minimumMust be legible at final print size
Line width0.5-1.5ptThin lines may not reproduce
File sizeVaries (often <10MB per figure)TIFF can be large
Matplotlib Configuration for Publication
python
import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np

def setup_publication_style(journal: str = 'nature'):
    """
    Configure matplotlib for publication-quality figures.
    """
    styles = {
        'nature': {
            'figure.figsize': (3.3, 2.5),    # single column
            'font.size': 7,
            'font.family': 'sans-serif',
            'font.sans-serif': ['Arial', 'Helvetica'],
            'axes.linewidth': 0.5,
            'axes.labelsize': 8,
            'xtick.labelsize': 7,
            'ytick.labelsize': 7,
            'legend.fontsize': 6,
            'lines.linewidth': 1.0,
            'lines.markersize': 4,
            'savefig.dpi': 300,
            'savefig.bbox': 'tight',
            'savefig.pad_inches': 0.05,
        },
        'ieee': {
            'figure.figsize': (3.5, 2.6),
            'font.size': 8,
            'font.family': 'serif',
            'font.serif': ['Times New Roman', 'Times'],
            'axes.linewidth': 0.5,
            'axes.labelsize': 9,
            'xtick.labelsize': 8,
            'ytick.labelsize': 8,
            'legend.fontsize': 7,
            'lines.linewidth': 1.0,
            'savefig.dpi': 300,
        },
        'acs': {
            'figure.figsize': (3.25, 2.5),
            'font.size': 7,
            'font.family': 'sans-serif',
            'font.sans-serif': ['Arial'],
            'axes.linewidth': 0.5,
            'savefig.dpi': 600,
        }
    }

    style = styles.get(journal, styles['nature'])
    mpl.rcParams.update(style)
    return style

setup_publication_style('nature')

Colorblind-Friendly Palettes

python
def get_accessible_palette(n_colors: int = 8, style: str = 'categorical') -> list:
    """
    Return colorblind-friendly palettes.
    """
    palettes = {
        'categorical': {
            # Wong (2011) Nature Methods palette
            3: ['#0072B2', '#D55E00', '#009E73'],
            4: ['#0072B2', '#D55E00', '#009E73', '#CC79A7'],
            5: ['#0072B2', '#D55E00', '#009E73', '#CC79A7', '#F0E442'],
            8: ['#0072B2', '#D55E00', '#009E73', '#CC79A7',
                '#F0E442', '#56B4E9', '#E69F00', '#000000']
        },
        'sequential': {
            # Viridis-based (perceptually uniform)
            'cmap': 'viridis'  # Also: 'cividis', 'inferno', 'magma'
        },
        'diverging': {
            'cmap': 'RdBu_r'  # Also: 'coolwarm', 'BrBG'
        }
    }

    if style == 'categorical':
        n = min(n_colors, 8)
        return palettes['categorical'].get(n, palettes['categorical'][8][:n])
    else:
        return palettes[style]

# Usage
colors = get_accessible_palette(4)

Common Figure Types

Bar Charts with Error Bars
python
def publication_barplot(data: dict, ylabel: str, title: str = '',
                         output: str = 'figure.pdf'):
    """
    Create a publication-quality bar chart.

    Args:
        data: Dict mapping group names to (mean, std_error) tuples
    """
    setup_publication_style('nature')
    colors = get_accessible_palette(len(data))

    fig, ax = plt.subplots()
    x = np.arange(len(data))
    names = list(data.keys())
    means = [data[k][0] for k in names]
    errors = [data[k][1] for k in names]

    bars = ax.bar(x, means, yerr=errors, capsize=3, color=colors,
                  edgecolor='black', linewidth=0.5, width=0.6,
                  error_kw={'linewidth': 0.5})

    ax.set_xticks(x)
    ax.set_xticklabels(names, rotation=0)
    ax.set_ylabel(ylabel)
    if title:
        ax.set_title(title)

    # Remove top and right spines
    ax.spines['top'].set_visible(False)
    ax.spines['right'].set_visible(False)

    fig.savefig(output, dpi=300, bbox_inches='tight')
    plt.close()
    return output
Scatter Plots with Regression Lines
python
from scipy import stats

def publication_scatter(x, y, xlabel, ylabel, output='scatter.pdf',
                         groups=None, group_labels=None):
    """Publication-quality scatter plot with optional regression line."""
    setup_publication_style('nature')
    fig, ax = plt.subplots()

    if groups is None:
        ax.scatter(x, y, s=15, alpha=0.7, color='#0072B2', edgecolors='none')
        # Regression line
        slope, intercept, r, p, se = stats.linregress(x, y)
        x_fit = np.linspace(min(x), max(x), 100)
        ax.plot(x_fit, slope*x_fit + intercept, '--', color='#D55E00', linewidth=0.8)
        ax.text(0.05, 0.95, f'r = {r:.2f}, p = {p:.3f}',
                transform=ax.transAxes, fontsize=6, va='top')
    else:
        colors = get_accessible_palette(len(set(groups)))
        for i, label in enumerate(group_labels or sorted(set(groups))):
            mask = np.array(groups) == label
            ax.scatter(np.array(x)[mask], np.array(y)[mask],
                      s=15, alpha=0.7, color=colors[i], label=label)
        ax.legend(frameon=False)

    ax.set_xlabel(xlabel)
    ax.set_ylabel(ylabel)
    ax.spines['top'].set_visible(False)
    ax.spines['right'].set_visible(False)

    fig.savefig(output, dpi=300, bbox_inches='tight')
    plt.close()

Multi-Panel Figures

python
def multi_panel_figure(n_rows, n_cols, panel_data, output='multipanel.pdf'):
    """Create a multi-panel figure with automatic panel labels."""
    setup_publication_style('nature')
    fig, axes = plt.subplots(n_rows, n_cols,
                              figsize=(3.3*n_cols, 2.5*n_rows))
    if n_rows * n_cols == 1:
        axes = np.array([axes])
    axes = axes.flatten()

    labels = 'abcdefghijklmnopqrstuvwxyz'
    for i, ax in enumerate(axes[:len(panel_data)]):
        # Add panel label
        ax.text(-0.15, 1.05, labels[i], transform=ax.transAxes,
                fontsize=10, fontweight='bold', va='bottom')

    plt.tight_layout()
    fig.savefig(output, dpi=300, bbox_inches='tight')
    plt.close()

Export Best Practices

  1. Vector formats first: Use PDF or EPS for line art and charts; TIFF only for photographs
  2. Font embedding: Ensure all fonts are embedded (use plt.rcParams['pdf.fonttype'] = 42)
  3. Check at print size: View the figure at actual print size (3.3in wide) to verify readability
  4. CMYK conversion: For print journals, convert RGB to CMYK using ImageMagick or Photoshop
  5. Consistent styling: All figures in a paper should use the same fonts, colors, and styling
python
# Ensure fonts are embedded in PDF output
mpl.rcParams['pdf.fonttype'] = 42  # TrueType fonts
mpl.rcParams['ps.fonttype'] = 42

© wentorai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/analysis/dataviz/publication-figures-guide of wentorai/research-plugins.

Open the folder on GitHubat commit bf44b3c

Used in 1 other repository

We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in wentorai/research-plugins, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Publication Figures Guide next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Publication Figures Guide compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Publication Figures Guide this skillwentorai/research-plugins2981 repos~2kAutomated safety check: PassMIT
MatplotlibzLanqing/codex-claude-academic-skills4.7k17 repos~2.9kAutomated safety check: PassMIT
Chart Visualizationbytedance/deer-flow84k1 repos~840Automated safety check: PassMIT
Scientific Visualizationmims-harvard/OptimusKG14719 repos~6.3kAutomated safety check: PassMIT
SeabornzLanqing/codex-claude-academic-skills4.7k15 repos~4.9kAutomated safety check: PassBSD-3-Clause
Plot From DataTrae1ounG/paper-plot-skills8721 repos~583Automated safety check: PassNone

Similar skills

  • Matplotlib

    zLanqing/codex-claude-academic-skills

    Low-level plotting library for full customization. An agent skill from zLanqing/codex-claude-academic-skills.

    4.7k GitHub starsUsed in 17 repos~2.9k tokens
    Data & AnalyticsAuto-check passed
  • Chart Visualization

    bytedance/deer-flow

    Picks a suitable chart type from 26 options for your data, maps the data to that chart's parameters and generates a chart image through a JavaScript script.

    84k GitHub starsUsed in 1 repo~840 tokens
    Data & AnalyticsAuto-check passed
  • Scientific Visualization

    mims-harvard/OptimusKG

    Create publication figures with matplotlib/seaborn/plotly. An agent skill from mims-harvard/OptimusKG.

    147 GitHub starsUsed in 19 repos~6.3k tokens
    Data & AnalyticsAuto-check passed
  • Seaborn

    zLanqing/codex-claude-academic-skills

    Statistical visualization with pandas integration. An agent skill from zLanqing/codex-claude-academic-skills.

    4.7k GitHub starsUsed in 15 repos~4.9k tokens
    Data & AnalyticsAuto-check passed
  • Plot From Data

    Trae1ounG/paper-plot-skills

    Generate publication-quality matplotlib figures by selecting a pre-built paper style and substituting user data.

    872 GitHub starsUsed in 1 repo~583 tokens
    Data & AnalyticsAuto-check passed
  • Scientific Figure Making

    ChenLiu-1996/figures4papers

    Covers publication-ready matplotlib figures for academic papers, slides, and reports—bars, trends, scatter, heatmaps, and multi-panel layouts—with this…

    8.3k GitHub stars~557 tokensUpdated yesterday
    Data & AnalyticsAuto-check passed

More from wentorai/research-plugins

All 405 skills in this repo
  • Abstract Writing Guide

    wentorai/research-plugins

    Craft structured research abstracts that maximize clarity and journal acceptance

    298 GitHub starsUsed in 1 repo~1.7k tokens
    Auto-check passed
  • Academic Citation Manager

    wentorai/research-plugins

    Manage academic citations across BibTeX, APA, MLA, and Chicago formats

    298 GitHub starsUsed in 1 repo~2.7k tokens
    Auto-check passed
  • Academic Paper Summarizer

    wentorai/research-plugins

    Summarize academic papers with structured extraction of key elements

    298 GitHub starsUsed in 1 repo~1.4k tokens
    Auto-check passed
  • Academic Study Methods

    wentorai/research-plugins

    Evidence-based study techniques for academic learning and retention

    298 GitHub starsUsed in 1 repo~1.8k tokens
    Auto-check passed
  • Academic Tone Guide

    wentorai/research-plugins

    Adjust writing tone and register for academic audiences and venues

    298 GitHub starsUsed in 1 repo~1.9k tokens
    Auto-check passed
  • Academic Translation Guide

    wentorai/research-plugins

    Academic translation, post-editing, and Chinglish correction guide

    298 GitHub starsUsed in 1 repo~1.6k tokens
    Auto-check passed

Questions about Publication Figures Guide

What does Publication Figures Guide do?

Create journal-quality scientific figures with proper styling and accessibility. Publication Figures Guide is an agent skill from wentorai/research-plugins.

When should I use Publication Figures Guide?

Publication Figures Guide fits situations like: tasks that involve Data visualization.

How do I install Publication Figures Guide in Claude Code?

Run `npx skills add wentorai/research-plugins --skill publication-figures-guide -a claude-code`. Or copy the skill folder (skills/analysis/dataviz/publication-figures-guide in wentorai/research-plugins) into .claude/skills/publication-figures-guide in your project. Claude Code loads it when a task matches its description.

How do I install Publication Figures Guide in Codex?

Run `npx skills add wentorai/research-plugins --skill publication-figures-guide -a codex`. Or copy the skill folder (skills/analysis/dataviz/publication-figures-guide in wentorai/research-plugins) into .agents/skills/publication-figures-guide in your project. Codex loads it when a task matches its description.

Can I use Publication Figures Guide in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add wentorai/research-plugins --skill publication-figures-guide -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/publication-figures-guide, .gemini/skills/publication-figures-guide, .github/skills/publication-figures-guide and .opencode/skills/publication-figures-guide in your project.

What does Publication Figures Guide need to run?

SKILL.md names no scripts, command-line tools or credentials: Publication Figures Guide is instructions for the agent only. Our summary lists: Python 3.

Does Publication Figures Guide access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Publication Figures Guide safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Publication Figures Guide use?

Publication Figures Guide is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Publication Figures Guide use?

About 2k tokens (SKILL.md is roughly 7.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Publication Figures Guide?

Skills that share tags, products or a category with Publication Figures Guide: Matplotlib (zLanqing/codex-claude-academic-skills, 4.7k stars), Chart Visualization (bytedance/deer-flow, 84k stars), Scientific Visualization (mims-harvard/OptimusKG, 147 stars) and Seaborn (zLanqing/codex-claude-academic-skills, 4.7k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Publication Figures Guide?

wentorai (a GitHub user) maintains it in wentorai/research-plugins, which has 298 GitHub stars. The repository holds 405 skills in this directory. The repository was last updated on June 19, 2026.

Source: wentorai/research-plugins on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.