general-figure-guide
Universal QA checklist for generated scientific plots: overlapping labels, clipped text, missing axes/legends, overcrowded data, and cross-journal resolution/format guidance.
Install / Use
npx skills add jaechang-hits/SciAgent-Skills --skill general-figure-guideInstalls into whichever agent you are using.
SKILL.md
Installable skill definition
Quality Score
Category
AutomationSupported Platforms
Tags
Our assessment of general-figure-guide
general-figure-guide scores 86/100 on our quality scale, 1745th of 2,866 Automation skills we index.
Its SKILL.md is 7.0 KB long, well organised into 13 sections with 1 code example: a thorough specification that gives an agent plenty to work with.
It has 367 GitHub stars, a meaningful sign that others use it.
Maintenance, license and trust
- The repository was last updated 37 days ago, so general-figure-guide is actively maintained.
- No license is declared. By default that means all rights are reserved: you can read it, but reusing or redistributing it is not clearly permitted. Ask the author before building on it commercially.
- Its trust signals score 88/100, with 1 caution from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
Safety scan
No issues foundOur scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands.
Automated pattern scan on 2026-10-05. It catches known dangerous patterns, not every risk — read a skill before letting an agent act on it.
general-figure-guide compared with similar skills
All 4 of these similar skills score higher than general-figure-guide; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| general-figure-guide (this skill)by jaechang-hits | 86 | 367 | 37d ago | SKILL.md |
| Agent-Reachby Panniantong | 100 | 90.8k | 19d ago | CLAUDE.md |
| Scraplingby D4Vinci | 100 | 85.7k | today | MCP Server |
| rufloby ruvnet | 100 | 73.9k | today | MCP Server |
| algorithmic-artby anthropics | 100 | 177.9k | 12d ago | SKILL.md |
Frequently asked questions
- How do I install general-figure-guide?
- Run
npx skills add jaechang-hits/SciAgent-Skills --skill general-figure-guide. The install tabs above show the steps for each supported agent. - Which AI agents does general-figure-guide work with?
- It is written for Universal, as a SKILL.md file. Other agents that read the same format can often use it too.
- Is general-figure-guide safe to use?
- Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. It declares no license and scores 88/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is general-figure-guide still maintained?
- The repository was last updated 37 days ago, so general-figure-guide is actively maintained.
Skill content
View source on GitHubname: general-figure-guide description: "Universal QA checklist for generated scientific plots: overlapping labels, clipped text, missing axes/legends, overcrowded data, and cross-journal resolution/format guidance." license: CC-BY-4.0
General Scientific Figure Quality Guide
Overview
This guide provides a universal quality checklist for evaluating scientific figures, whether generated programmatically (matplotlib, seaborn, R/ggplot2) or assembled manually. It focuses on visual readability issues that are common across all journals and easily missed during automated plot generation.
Key Concepts
Visual Readability
A figure must communicate its data without requiring the reader to guess. The most common readability failures are overlapping labels, clipped text that runs outside the figure boundary, missing or unlabeled axes, absent legends, empty plot areas from incorrect data filtering, and overcrowded data points that merge into an unreadable mass.
Resolution and Output Format
Scientific figures generally require 300+ DPI for raster output (TIFF, PNG, JPEG) and vector formats (PDF, EPS, SVG) for line art and graphs. Vector formats are preferred for plots because they scale without quality loss. Raster formats are appropriate for photographs and micrographs.
Color Accessibility
Approximately 8% of males have some form of color vision deficiency. Figures that rely solely on red-green color differences exclude these readers. Use colorblind-friendly palettes (blue-orange, or viridis/cividis colormaps), add pattern or shape differentiation, and test figures with a colorblindness simulator before submission.
Uniform Image Adjustments
All major journals require that brightness, contrast, and color adjustments be applied uniformly to the entire image. Selective enhancement of specific regions (e.g., adjusting one gel lane) is considered data manipulation and grounds for rejection across all journals. Always document processing steps in the Methods section and retain original unprocessed files.
Decision Framework
Is the figure a generated plot or a photograph?
├── Generated plot (matplotlib, ggplot2, seaborn)
│ ├── Export as vector (PDF, SVG, EPS) → preferred
│ └── Export as raster → 300+ DPI minimum, PNG or TIFF
├── Photograph or micrograph
│ └── Export as raster → 300+ DPI, TIFF preferred
└── Multi-panel composite
├── Assemble panels first, then export as single file
└── Use consistent font sizes and label styles across panels
| Issue | How to Detect | Fix |
|---|---|---|
| Overlapping labels | Text visually collides on axes or legend | Rotate labels, reduce font size, or increase figure dimensions |
| Clipped text | Labels or titles cut off at figure edge | Increase margins with tight_layout() or constrained_layout |
| Missing axes or legends | No axis labels, units, or legend present | Add xlabel, ylabel, legend() calls |
| Empty plot area | Blank canvas with axes but no visible data | Check data filtering, column names, and plot function arguments |
| Overcrowded data | Points merge into solid mass | Reduce marker size, add transparency (alpha), or use density plots |
Best Practices
- Run a visual check after every plot generation: Inspect the rendered image for overlapping labels, clipped text, missing axes/legends, empty areas, and overcrowded data before proceeding
- Use
tight_layout()orconstrained_layout=True: These prevent text clipping at figure boundaries, the most common layout failure in matplotlib - Set DPI at figure creation time: Configure
fig.set_dpi(300)orplt.savefig(..., dpi=300)to ensure publication-quality output from the start - Export plots as vector formats: Use PDF, SVG, or EPS for graphs and diagrams. Reserve raster formats (PNG, TIFF) for photographs and micrographs
- Apply consistent font sizes across panels: All text in a multi-panel figure should use the same font family and comparable sizes (typically 6-8 pt for labels, 8 pt for panel identifiers)
- Add transparency for dense scatter plots: Use
alpha=0.3-0.5when plotting thousands of points to reveal density structure instead of a solid mass - Include units on all axes: Every axis should show the measured parameter and units in parentheses (e.g., "Time (hours)", "Concentration (nM)")
Common Pitfalls
- Not inspecting generated plots before saving: Automated pipelines often produce figures with layout issues that go unnoticed until review
- How to avoid: Always render and visually inspect each figure; if reviewing programmatically, check for text bounding-box overlaps
- Clipped axis labels or titles: Default matplotlib margins often cut off long labels or suptitles
- How to avoid: Call
fig.tight_layout()or create figures withconstrained_layout=True
- How to avoid: Call
- Missing legends on multi-series plots: Plots with multiple lines or groups are unreadable without a legend
- How to avoid: Always call
ax.legend()when plotting more than one series; verify legend entries match the data
- How to avoid: Always call
- Overcrowded scatter plots at large N: Scatter plots with >10,000 points become solid blobs at default settings
- How to avoid: Use
alphatransparency, hexbin plots, or kernel density estimation for large datasets
- How to avoid: Use
- Saving at screen resolution (72 DPI): Default screen DPI produces figures that are unprintable in journals
- How to avoid: Always specify
dpi=300(minimum) insavefig()or set it on the figure object at creation
- How to avoid: Always specify
Protocol Guidelines
- Set up figure dimensions and DPI: Before plotting, configure target width (journal column width), aspect ratio, and DPI (300+ minimum) on the figure object
- Generate the figure using your plotting library with the pre-configured settings
- Visually inspect the rendered output for these specific issues:
- Overlapping labels or annotations
- Clipped text at figure boundaries
- Missing axis labels, units, or legends
- Empty plot areas (data not rendered)
- Overcrowded or indistinguishable data points
- If any issue is found, regenerate with targeted fixes (adjust layout, font size, margins, alpha, or figure dimensions)
- Export in the correct format: vector (PDF/EPS/SVG) for plots, raster (TIFF/PNG at 300+ DPI) for photographs
- Verify the saved file: reopen the exported file to confirm it matches the on-screen rendering
Further Reading
- Matplotlib Figure Layout Guide -- tight_layout and constrained_layout usage
- Ten Simple Rules for Better Figures (PLOS) -- general principles for scientific figure design
- Points of View: Nature Methods Column -- visual design principles for scientific data
Related Skills
nature-figure-guide-- Nature-specific figure requirementscell-figure-guide-- Cell Press figure requirementsscience-figure-guide-- Science (AAAS) figure requirementspnas-figure-guide-- PNAS figure requirements
Related Skills
Agent-Reach
90.8kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
Scrapling
85.7k🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scrapling_dev
ruflo
73.9k🌊 The original agent harness. Deploy intelligent multi-player swarms, coordinate autonomous workflows, and build conversational AI systems. Features adaptive memory, self-learning intelligence, federation, vector RAG integration, and native Claude Code / Codex / Hermes and many more Integrated
algorithmic-art
177.9kCreating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems.
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
