Przejdź do treści
Biblioteka skilli
Nauka i badania · Budowanie i kod

nature-figure

/nature-figure

Generuje rysunki w jakości publikacyjnej dla czasopism Nature, Science, Cell, ACS i Wiley w Pythonie (matplotlib) lub R (ggplot2), w tym układy wielopanelowe i palety Nature.

Licencja
MIT
Ostatnia zmiana repozytorium
28.09.2026

Ocena i bezpieczeństwo

100/ 100Klasa: dobry
Format25 / 25
Frontmatter z nazwą i opisem, poprawna nazwa, opis do 1024 znaków, nazwa zgodna z folderem.
Odkrywalność25 / 25
Opis mówi, kiedy użyć skilla, ma sensowną długość i jest w 3. osobie.
Treść35 / 35
Co najmniej 150 słów i do 500 linii, nagłówki, listy kroków, przykłady albo kod.
Higiena15 / 15
Bez zaślepek typu TODO, bez ścieżek Windows, z licencją.
Ryzykobrak sygnałów w skanie
Pliki w paczce
1
Skrypty
0
Komentarze HTML
0
Adresy URL w SKILL.md
0
Przestarzałość

Brak sygnałów. Repozytorium zmienione 28.09.2026, bez odwołań do wycofanych modeli i API.

Licencja

MIT, otwarta: można używać i zmieniać, z zachowaniem informacji o autorze.

Co robi i kiedy

Generuje rysunki w jakości publikacyjnej dla czasopism Nature, Science, Cell, ACS i Wiley w Pythonie (matplotlib) lub R (ggplot2), w tym układy wielopanelowe i palety Nature.

Oryginalny opis (EN)

Generate publication-quality figures for top-tier journals (Nature, Science, Cell, ACS, Wiley families) using Python (matplotlib) or R (ggplot2). Trigger when user wants to create, polish, or redesign scientific figures for high-impact journals. Handles multi-panel layouts, Nature color palettes, correct typography, and exports SVG/PDF/PNG.

Jak działa

  1. Purpose
  2. Trigger Conditions
  3. Nature Figure Standards
  4. Workflow
  5. Common Figure Types
  6. Output
Sekcje z nagłówków SKILL.md, w oryginale · 241 linii, 1 050 słów
Podgląd SKILL.md
---
name: nature-figure
description: Generate publication-quality figures for top-tier journals (Nature, Science, Cell, ACS, Wiley families) using Python (matplotlib) or R (ggplot2). Trigger when user wants to create, polish, or redesign scientific figures for high-impact journals. Handles multi-panel layouts, Nature color palettes, correct typography, and exports SVG/PDF/PNG.
---

# nature-figure

## Purpose
Generate multi-panel scientific figures that meet Nature portfolio visual standards:
correct typography, semantic colour palette, accessible design, and editable SVG output.

---

## Trigger Conditions
Activate when user mentions:
- "画图" / "figure" / "plot" / "科研绘图"
- "Nature figure" / "publication figure" / "publication plot"
- "matplotlib" / "ggplot" / "seaborn"
- "配色" / "color palette" / "color scheme"
- Wants to improve or reformat an existing figure

---

## Nature Figure Standards

### Typography
- Font family: **Arial** or **Helvetica** (sans-serif, never Times New Roman in figures)
- Minimum font size in final print: **7 pt** (axis labels, tick labels)
- Panel labels (a, b, c...): **8 pt bold**, lowercase
- Figure title (if any): not embedded in figure — goes in legend
- All text must be editable (not rasterized)

### Size & Resolution
| Format | Width | Resolution |
|--------|-------|------------|
| Single column | 89 mm (3.5 in) | 300 DPI min |
| 1.5 column | 120 mm (4.7 in) | 300 DPI min |
| Double column | 183 mm (7.2 in) | 300 DPI min |
| Line art | any | **600 DPI** |
| Final submission | PDF or TIFF | vector preferred |

### Colour Palette (Nature-approved, colorblind-safe)
```python
NATURE_COLORS = {
    "blue":    "#4878CF",
    "red":     "#D65F5F", 
    "green":   "#6ACC65",
    "orange":  "#EE854A",
    "purple":  "#956CB4",
    "teal":    "#82C6E2",
    "brown":   "#D5BB67",
    "gray":    "#8C8C8C",
    # Colorblind-safe primary pair:
    "cb_blue": "#0072B2",
    "cb_orange":"#E69F00",
}
```
- Never use pure red + green together (colorblind conflict)
- Use filled symbols + different shapes for accessibility, not colour alone
- Grayscale must remain distinguishable

### Panel Architecture
- Each panel makes **one clear point**
- Panel (a): overview / schematic / representative image
- Panels (b–d): quantitative evidence
- Final panel: comparison or generalizability
- Panels are labelled **a, b, c** (lowercase bold, top-left corner)
- White background; minimal gridlines (light gray, 0.5pt)
- No chartjunk: remove top and right spines

### Statistical Annotations
- Error bars: always define in legend (mean ± s.d. or ± s.e.m.)
- Significance: *, **, ***, **** for p < 0.05, 0.01, 0.001, 0.0001; prefer exact p-values
- n must be stated (e.g., n = 5 independent experiments)
- Box plots: show median, IQR, whiskers to 1.5×IQR, individual points overlaid

---

## Workflow

### Step 0: Auto-figure from data file (fastest path)
If user provides a CSV, Excel, or JSON data file:
```bash
python3 ${CLAUDE_PLUGIN_ROOT}/scripts/auto_figure.py \
  --input <data_file> \
  --output ~/Downloads/figure_<date>.pdf \
  --title "[figure title]" \
  --xlabel "X axis label" \
  --ylabel "Y axis label" \
  --type [auto|line|bar|scatter|heatmap|box]
```
The script auto-detects column types, chooses appropriate chart type, applies Nature style, and saves PDF + PNG.

### Step 1: Gather requirements (if no data file yet)
Ask the user:
1. What data do you have? (paste CSV, describe columns, or share values)
2. How many panels? What does each panel show?
3. Single/1.5/double column width?
4. Python (matplotlib/seaborn) or R (ggplot2)?
5. Any specific colour requirements or journal sub-style?

### Step 2: Generate figure code

#### Python template (matplotlib):
```python
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
import numpy as np

# --- Nature style settings ---
plt.rcParams.update({
    'font.family': 'Arial',
    'font.size': 8,
    'axes.linewidth': 0.8,
    'axes.spines.top': False,
    'axes.spines.right': False,
    'xtick.major.width': 0.8,
    'ytick.major.width': 0.8,
    'xtick.major.size': 3,
    'ytick.major.size': 3,
    'xtick.direction': 'out',
    'ytick.direction': 'out',
    'figure.dpi': 300,
    'savefig.dpi': 300,
    'savefig.bbox': 'tight',
    'savefig.pad_inches': 0.05,
    'pdf.fonttype': 42,   # editable text in PDF
    'ps.fonttype': 42,
})

COLORS = {
    "blue": "#4878CF", "red": "#D65F5F", "green": "#6ACC65",
    "orange": "#EE854A", "purple": "#956CB4", "teal": "#82C6E2",
    "cb_blue": "#0072B2", "cb_orange": "#E69F00",
}

# --- Figure layout ---
fig = plt.figure(figsize=(7.2, 4.0))  # double column, adjust height
gs = gridspec.GridSpec(1, 3, figure=fig, wspace=0.4, hspace=0.4)

ax_a = fig.add_subplot(gs[0])
ax_b = fig.add_subplot(gs[1])
ax_c = fig.add_subplot(gs[2])

# --- Panel labels ---
for ax, label in zip([ax_a, ax_b, ax_c], ['a', 'b', 'c']):
    ax.text(-0.15, 1.05, label, transform=ax.transAxes,
            fontsize=8, fontweight='bold', va='top', ha='right')

# --- YOUR DATA GOES HERE ---
# ax_a: ...
# ax_b: ...
# ax_c: ...

plt.savefig('figure1.pdf', format='pdf')
plt.savefig('figure1.png', dpi=300)
print("Saved: figure1.pdf, figure1.png")
```

#### R template (ggplot2):
```r
library(ggplot2)
library(patchwork)

# Nature theme
theme_nature <- function() {
  theme_classic(base_size = 8, base_family = "Arial") +
  theme(
    axis.line = element_line(linewidth = 0.5),
    axis.ticks = element_line(linewidth = 0.5),
    axis.ticks.length = unit(2, "pt"),
    strip.background = element_blank(),
    legend.key.size = unit(3, "mm"),
    plot.margin = margin(2, 2, 2, 2, "mm")
  )
}

nature_colors <- c(
  blue = "#4878CF", red = "#D65F5F", green = "#6ACC65",
  orange = "#EE854A", purple = "#956CB4", teal = "#82C6E2"
)

# --- YOUR PLOTS ---
# p1 <- ggplot(...) + theme_nature()
# p2 <- ggplot(...) + theme_nature()
# combined <- p1 | p2
# ggsave("figure1.pdf", combined, width = 183, height = 80, units = "mm", dpi = 300)
```

### Step 3: Validate
Before outputting, check:
- [ ] Font ≥ 7pt in all elements
- [ ] No top/right spines
- [ ] Colorblind-safe palette used
- [ ] Error bars defined
- [ ] Panel labels present (a, b, c lowercase bold)
- [ ] Resolution ≥ 300 DPI (600 for line art)
- [ ] Figure width matches column format
- [ ] PDF/SVG output for vector editability

### Step 4: Figure legend
Generate the corresponding figure legend text:
- Bold "Figure X |" prefix
- Short title (one phrase)
- One sentence per panel
- Error bar definition
- n values and statistical test used
- Scale bar definition (for images)

---

## Common Figure Types

### Line plot (time series / trends)
Use solid lines with markers; different line styles + colours for groups.

### Bar chart
Prefer horizontal bars for many categories; overlay individual data points.
Use `plt.bar()` with `edgecolor='black', linewidth=0.5`.

### Scatter plot
Include regression line with 95% CI if showing correlation.
State Pearson/Spearman r and p-value on plot.

### Heatmap
Use diverging colourmap (e.g., `RdBu_r`) for correlation; sequential for intensity.
Always include colourbar with label and units.

### Box/Violin plot
Always overlay individual data points (`stripplot` or `geom_jitter`).
State n per group.

### Schematic / Mechanism diagram
Recommend using BioRender (biorender.com) or Inkscape for schematics.
Export as SVG and embed in figure.

---

## Output
Provide the user with:
1. Complete, runnable Python or R code
2. Instructions to save in the correct format (PDF + PNG)
3. The figure legend text
4. A checklist of what to verify before submission

Wersje

RepozytoriumWynikLicencja
Ta strona · Yang1Bai/nature-paper-hub100MIT
boom5426/nature-paper-skills100MIT
citrus-bit/anaxa100MIT
researai/deepscientist100Apache-2.0
vcis-wangchenxu/agent_nature-skills90Apache-2.0

Migawka bazy z 28.10.2026 · wersja paczki 253541150a7c (skrót SHA-256 całej paczki)

Pobrania w ostatnich 30 dniach: 0 · ranking

Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.

Podobne skille

  • 100scientific-figure
    Tworzy rysunki naukowe do publikacji: składa wielopanelowe figury, eksportuje je do PDF i przygotowuje w stylu czasopism, takich jak Nature.
  • 100nature-paper-hub
    Wspiera pełny proces zgłoszenia do 19 czasopism, w tym portfolio Nature, Science, Cell, PNAS i JACS: dobór czasopisma, przegląd literatury, pisanie, rysunki, weryfikację cytowań i kontrolę rzetelności.
  • 100nature-reader
    Tworzy dwujęzyczny czytnik pełnych artykułów z czasopism Nature, Science, Cell, PNAS i ACS: konwertuje PDF lub URL na Markdown z chińskim tłumaczeniem, kotwicami źródeł i streszczeniami sekcji.
  • 95paper-figure-nature
    Generuje w matplotlib wykresy gotowe do publikacji według standardów czasopisma Nature.
  • 95scientific-visualization
    Tworzy wykresy o jakości publikacyjnej: układy wielopanelowe, adnotacje istotności, przedziały błędów i palety bezpieczne dla daltonistów.
  • 95scientific-visualization
    Przygotowuje rysunki gotowe do publikacji w czasopismach (Nature, Science, Cell): układy wielopanelowe, adnotacje istotności, słupki błędów i palety bezpieczne dla daltonistów, z matplotlib, seaborn i plotly.

Uwagi i zgłoszenia

Wiadomość trafi do Bartosza Sokolińskiego. Adres e-mail jest potrzebny tylko do odpowiedzi. Szczegóły w polityce prywatności.