Token导航 LogoToken导航TokenDH.com
研究检索需要联网github未标认证来源可访问许可证需确认审计通过

academic-plotting学术策划

Agent Skill

academic-plotting 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

2,728

周安装

116

GitHub Stars

7,586

下载量

956
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:academic-plotting(学术策划)
来源仓库:https://github.com/orchestra-research/ai-research-skills
仓库路径:skills/academic-plotting
安装命令:
npx skills add https://github.com/orchestra-research/ai-research-skills --skill academic-plotting
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/orchestra-research/ai-research-skills --skill academic-plotting

简介

学术策划用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中快速定位候选结果。

  • 适用于需要根据关键词或任务场景进行信息搜集与线索梳理的场景。
  • 通过关键词输入和来源仓库路径匹配,输出结构化候选结果列表。
  • 安装前需确认权限范围及是否触发联网或文件操作,建议核对维护状态。
  • academic-plotting 属于研究检索类 Skill,可作为该场景下的辅助能力补充。

SKILL.md

Academic Plotting for ML Papers

Generate publication-quality figures for ML/AI conference papers. Two distinct workflows:

  1. Diagram figures (architecture, system design, workflows, pipelines) — AI image generation via Gemini
  2. Data figures (line charts, bar charts, scatter plots, heatmaps, ablations) — matplotlib/seaborn

When to Use Which Workflow

Figure TypeToolWhy
Architecture / system diagramGemini (Workflow 1)Complex spatial layouts with boxes, arrows, labels
Workflow / pipeline / lifecycleGemini (Workflow 1)Multi-step processes with connections
Bar chart, line plot, scattermatplotlib (Workflow 2)Precise numerical data, reproducible
Heatmap, confusion matrixmatplotlib/seaborn (Workflow 2)Structured grid data
Ablation table as chartmatplotlib (Workflow 2)Grouped bars or line comparisons
Pie / donut chartmatplotlib (Workflow 2)Proportional data (use sparingly in ML papers)
Training curvesmatplotlib (Workflow 2)Loss/accuracy over steps/epochs

Rule of thumb: If the figure has numerical axes, use matplotlib. If the figure has boxes and arrows, use Gemini.


Step 0: Context Analysis & Extraction

The user will typically provide one of these inputs — not a ready-made specification:

Input TypeExampleWhat to Extract
Full paper / section draft"Here's our method section..."System components, their relationships, data flow
Description paragraph"Our system has three layers that..."Key entities, hierarchy, connections
Raw results / data table"MMLU: 85.2, HumanEval: 72.1..."Metrics, methods, comparison structure
CSV / JSON dataExperiment log filesVariables, trends, grouping dimensions
Vague request"Make a figure for the overview"Read surrounding paper context to infer content

Extraction Workflow

For diagrams (research context → architecture figure):

  1. Read the provided context — paper section, abstract, or description paragraph
  2. Identify visual entities — What are the main components/modules/stages?

- Look for: nouns that represent system parts, named modules, layers, stages - Count them: if >8 top-level entities, consider grouping into sections

  1. Identify relationships — How do components connect?

- Look for: verbs describing data flow ("sends to", "queries", "feeds into") - Classify: data flow (solid arrow), control flow (gray), error path (dashed red)

  1. Determine layout pattern:

- Sequential pipeline → left-to-right flow - Layered architecture → horizontal bands stacked vertically - Hub-and-spoke → central node with radiating connections - Hierarchical → top-down tree

  1. Assign colors — One accent color per logical group/layer
  2. Write every label exactly — Extract exact terminology from the paper text

For data charts (results → figure):

  1. Read the provided data — table, paragraph with numbers, CSV, or JSON
  2. Identify dimensions:

- What is being compared? (methods, models, configurations) → categorical axis - What is the metric? (accuracy, loss, latency, F1) → value axis - Is there a time/step dimension? → line plot - Are there multiple metrics? → multi-panel or grouped bars

  1. Choose chart type automatically using this priority:

- Has a step/time axis → line plot - Comparing N methods on M benchmarks → grouped bar chart - Single ranking → horizontal bar (leaderboard) - Correlation between two continuous variables → scatter plot - Square matrix of values → heatmap - Proportional breakdown → stacked bar (avoid pie charts)

  1. Determine figure sizing — Single column vs full width based on data density
  2. Highlight "our method" — Identify which entry is the paper's contribution and give it a distinct color

Auto-Detection Examples

Context → Diagram: "Our system has a Planner, Executor, and Verifier. Planner sends plans to Executor, Executor returns results to Verifier, Verifier feeds back to Planner on failure." → 3 entities, cycle layout, dashed feedback arrow → Workflow 1 (Gemini)

Data → Chart: "GPT-4: MMLU 86.4, HumanEval 67.0. Ours: 88.1, 71.2. Llama-3: 79.3, 62.1." → 3 methods × 2 benchmarks → Workflow 2 (grouped bar), highlight "Ours" in coral


Workflow 1: Architecture & System Diagrams (AI Image Generation)

Use Gemini 3 Pro Image Preview to generate diagrams. Choose a visual style first — this is the single biggest factor in whether the figure looks professional or generic.

Visual Styles

Pick one style per paper (all figures should be consistent):

Style A: "Sketch / 简笔画" (Hand-Drawn)

Warm, approachable, memorable. Ideal for overview figures and system introductions. Looks like a whiteboard sketch refined by a designer.

VISUAL STYLE — HAND-DRAWN SKETCH:
- Slightly irregular, hand-drawn line quality — lines wobble gently, not perfectly straight
- Rounded, soft shapes with visible pen strokes (like drawn with a thick felt-tip marker)
- Warm off-white background (#FAFAF7), NOT pure white
- Fill colors are soft watercolor-like washes: muted blue (#D6E4F0), soft peach (#F5DEB3),
  light sage (#D4E6D4), pale lavender (#E6DFF0)
- Borders are dark charcoal (#2C2C2C) with 2-3px line weight, slightly uneven
- Arrows are hand-drawn with slight curves, ending in simple open arrowheads (not filled triangles)
- Text uses a rounded sans-serif font (like Comic Neue or Architects Daughter feel)
- Small doodle-style icons inside boxes: a tiny gear ⚙ for processing, a lightbulb 💡 for ideas,
  a magnifying glass 🔍 for search — rendered as simple line drawings, NOT emoji
- Overall feel: a carefully drawn whiteboard diagram, clean but with personality
- NO clip art, NO stock icons, NO photorealistic elements

Style B: "Modern Minimal" (Clean & Bold)

Confident, authoritative. Best for method figures where precision matters.

VISUAL STYLE — MODERN MINIMAL:
- Ultra-clean geometric shapes with crisp edges
- Bold color blocks as backgrounds for sections — NOT just accent bars, but full section fills
  using desaturated tones: slate blue (#E8EDF2), warm sand (#F5F0E8), cool mint (#E8F2EE)
- Component boxes have ROUNDED CORNERS (12px radius), NO visible border — they float on
  the section background using subtle shadow (1px, 4px blur, rgba(0,0,0,0.06))
- ONE accent color per section used sparingly on key elements: Deep blue (#2563EB),
  Emerald (#059669), Amber (#D97706), Rose (#E11D48)
- Arrows are thin (1.5px), dark gray (#6B7280), with small filled circle at source
  and clean arrowhead at target — NOT thick colored arrows
- Typography: Inter or system sans-serif, title 600 weight, body 400 weight
- Labels INSIDE boxes, not beside them
- Generous whitespace — at least 24px between elements
- NO decorative elements, NO icons — let the structure speak

Style C: "Illustrated Technical" (Icon-Rich)

Engaging, explanatory. Good for tutorial-style papers and figures that need to be self-explanatory.

VISUAL STYLE — ILLUSTRATED TECHNICAL:
- Each major component has a small MEANINGFUL ICON drawn in a consistent line-art style
  (single color, 2px stroke, ~24x24px): brain icon for reasoning, database cylinder for storage,
  arrow-loop for iteration, network nodes for communication
- Components sit inside soft rounded rectangles with a LEFT COLOR STRIP (4px wide)
- Background is pure white, but each logical group has a very faint colored region behind it
  (#F8FAFC for blue group, #FFF8F0 for orange group)
- Connections use CURVED bezier paths (not straight lines), colored by SOURCE component
- Key data flows are THICKER (3px) than secondary flows (1px, dashed)
- Small annotation badges on arrows: "×N" for repeated operations, "optional" in italics
- Title labels are ABOVE each section in small caps, letter-spaced
- Overall: like a well-designed API documentation diagram

Style D: "Accent Bar" (Classic Academic)

The default academic style. Safe for any venue, works well in grayscale.

VISUAL STYLE — CLASSIC ACCENT BAR:
- Horizontal section bands stacked vertically, pale gray (#F7F7F5) fill
- Thick colored LEFT ACCENT BAR (8px) distinguishes each section
- Content boxes: white fill, thin #DDD border, 4px rounded corners
- Section palette: Blue #4A90D9, Teal #5BA58B, Amber #D4A252, Slate #7B8794
- Sans-serif typography (Helvetica/Arial), bold titles, regular body
- Colored arrows match their SOURCE section
- Clean, flat, zero decoration

Curated Color Palettes

"Ocean Dusk" (professional, calming — default recommendation): #264653 deep teal, #2A9D8F teal, #E9C46A gold, #F4A261 sandy orange, #E76F51 burnt coral

"Ink & Wash" (for 简笔画 style): #2C2C2C charcoal ink, #D6E4F0 washed blue, #F5DEB3 washed wheat, #D4E6D4 washed sage, #E6DFF0 washed lavender

"Nord" (for modern minimal): #2E3440 polar night, #5E81AC frost blue, #A3BE8C aurora green, #EBCB8B aurora yellow, #BF616A aurora red

"Okabe-Ito" (universal colorblind-safe, required for data charts): #E69F00 orange, #56B4E9 sky blue, #009E73 green, #F0E442 yellow, #0072B2 blue, #D55E00 vermillion, #CC79A7 pink

Checklist

  • Extract from context: Read paper/description, identify entities and relationships
  • Choose visual style (A/B/C/D) — match the paper's tone and venue
  • Choose color palette — or use one consistent with existing paper figures
  • Obtain Gemini API key (GEMINI_API_KEY env var)
  • Write a detailed prompt: style block + layout + connections + constraints
  • Generate script at figures/gen_fig_<name>.py, run for 3 attempts
  • Review, select best, save as figures/fig_<name>.png

Prompt Structure (6 Sections)

Every Gemini prompt must include these sections in order:

1. FRAMING (5 lines): "Create a [STYLE_NAME]-style technical diagram for a
   [VENUE] paper. The diagram should feel [ADJECTIVES]..."

2. VISUAL STYLE (20-30 lines): Copy the full style block from above (A/B/C/D).
   This is the most important section — it determines the entire visual character.

3. COLOR PALETTE (10 lines): Exact hex codes for every color used.

4. LAYOUT (50-150 lines): Every component, box, section — exact text, spatial
   arrangement, and grouping. Be exhaustively specific.

5. CONNECTIONS (30-80 lines): Every arrow individually — source, target, style,
   label, routing direction.

6. CONSTRAINTS (10 lines): What NOT to include. Adapt per style — e.g., sketch
   style allows slight irregularity but still no clip art.

Generation Script Template

#!/usr/bin/env python3
"""Generate [FIGURE_NAME] diagram using Gemini image generation."""
import os, sys, time
from google import genai

API_KEY = os.environ.get("GEMINI_API_KEY")
if not API_KEY:
    print("ERROR: Set GEMINI_API_KEY environment variable.")
    print("  Get a key at: https://aistudio.google.com/apikey")
    sys.exit(1)

MODEL = "gemini-3-pro-image-preview"
OUTPUT_DIR = os.path.dirname(os.path.abspath(__file__))
client = genai.Client(api_key=API_KEY)

PROMPT = """
[PASTE YOUR 6-SECTION PROMPT HERE]
"""

def generate_image(prompt_text, attempt_num):
    print(f"\n{'='*60}\nAttempt {attempt_num}\n{'='*60}")
    try:
        response = client.models.generate_content(
            model=MODEL,
            contents=prompt_text,
            config=genai.types.GenerateContentConfig(
                response_modalities=["IMAGE", "TEXT"],
            ),
        )
        output_path = os.path.join(OUTPUT_DIR, f"fig_NAME_attempt{attempt_num}.png")
        for part in response.candidates[0].content.parts:
            if part.inline_data:
                with open(output_path, "wb") as f:
                    f.write(part.inline_data.data)
                print(f"Saved: {output_path} ({os.path.getsize(output_path):,} bytes)")
                return output_path
            elif part.text:
                print(f"Text: {part.text[:300]}")
        print("WARNING: No image in response")
        return None
    except Exception as e:
        print(f"ERROR: {e}")
        return None

def main():
    results = []
    for i in range(1, 4):
        if i > 1:
            time.sleep(2)
        path = generate_image(PROMPT, i)
        if path:
            results.append(path)
    if not results:
        print("All attempts failed!")
        sys.exit(1)
    print(f"\nGenerated {len(results)} attempts. Review and pick the best.")

if __name__ == "__main__":
    main()

Key Rules

  • Always 3 attempts — quality varies significantly between runs
  • Style block is mandatory — without it, Gemini defaults to generic corporate look
  • Never hardcode API keys — use os.environ.get("GEMINI_API_KEY")
  • Save generation scripts — reproducibility is critical
  • Specify every label exactly — Gemini may misspell or rearrange text

Full prompt examples per style: See references/diagram-generation.md


Workflow 2: Data-Driven Charts (matplotlib/seaborn)

For any figure with numerical data, axes, or quantitative comparisons.

Checklist

  • Extract from context: Parse results/data, identify methods, metrics, and comparison structure
  • Auto-select chart type based on data dimensions (see decision guide below)
  • Prepare data (CSV, dict, or inline arrays)
  • Apply publication styling (fonts, colors, sizes)
  • Highlight "our method" with a distinct color
  • Export as both PDF (vector) and PNG (300 DPI)
  • Verify LaTeX font compatibility
  • Save script at figures/gen_fig_<name>.py

Chart Type Decision Guide

Data PatternBest ChartNotes
Trend over time/stepsLine plotTraining curves, scaling laws
Comparing categoriesGrouped bar chartModel comparisons, ablations
DistributionViolin / box plotScore distributions across methods
CorrelationScatter plotEmbedding analysis, metric correlation
Grid of valuesHeatmapAttention maps, confusion matrices
Part of wholeStacked bar (not pie)Prefer stacked bar over pie in ML papers
Many methods, one metricHorizontal barLeaderboard-style comparisons

Publication Styling Template

import matplotlib.pyplot as plt
import numpy as np

# --- Publication defaults (polished, not generic) ---
plt.rcParams.update({
    "font.family": "serif", "font.serif": ["Times New Roman", "DejaVu Serif"],
    "font.size": 10, "axes.titlesize": 11, "axes.titleweight": "bold",
    "axes.labelsize": 10, "legend.fontsize": 8.5, "legend.frameon": False,
    "figure.dpi": 300, "savefig.dpi": 300, "savefig.bbox": "tight",
    "axes.spines.top": False, "axes.spines.right": False,
    "axes.grid": True, "grid.alpha": 0.15, "grid.linestyle": "-",
    "lines.linewidth": 1.8, "lines.markersize": 5,
})

# --- "Ocean Dusk" palette (professional, distinctive, colorblind-safe) ---
COLORS = ["#264653", "#2A9D8F", "#E9C46A", "#F4A261", "#E76F51",
          "#0072B2", "#56B4E9", "#8C8C8C"]
OUR_COLOR = "#E76F51"       # coral — warm, stands out
BASELINE_COLOR = "#B0BEC5"  # cool gray — recedes
FIG_SINGLE, FIG_FULL = (3.25, 2.5), (6.75, 2.8)

Common Chart Patterns

Line plot (training curves) — with markers and confidence bands:

fig, ax = plt.subplots(figsize=FIG_SINGLE)
markers = ["o", "s", "^", "D", "v"]
for i, (method, (mean, std)) in enumerate(results.items()):
    color = OUR_COLOR if method == "Ours" else COLORS[i]
    ax.plot(steps, mean, label=method, color=color,
            marker=markers[i % 5], markevery=max(1, len(steps)//8),
            markersize=4, zorder=3)
    ax.fill_between(steps, mean - std, mean + std, color=color, alpha=0.12)
ax.set_xlabel("Training Steps")
ax.set_ylabel("Accuracy (%)")
ax.legend(loc="lower right")
fig.savefig("figures/fig_training.pdf")
fig.savefig("figures/fig_training.png", dpi=300)

Grouped bar chart (ablation) — with value labels:

fig, ax = plt.subplots(figsize=FIG_FULL)
x = np.arange(len(categories))
n = len(methods)
width = 0.7 / n
for i, (method, scores) in enumerate(methods.items()):
    color = OUR_COLOR if method == "Ours" else COLORS[i]
    offset = (i - n / 2 + 0.5) * width
    bars = ax.bar(x + offset, scores, width * 0.9, label=method, color=color,
                  edgecolor="white", linewidth=0.5)
    for bar, s in zip(bars, scores):
        ax.text(bar.get_x() + bar.get_width()/2, bar.get_height() + 0.3,
                f"{s:.1f}", ha="center", va="bottom", fontsize=7, color="#444")
ax.set_xticks(x)
ax.set_xticklabels(categories)
ax.set_ylabel("Score")
ax.legend(ncol=min(n, 4))
fig.savefig("figures/fig_ablation.pdf")

Heatmap — with diverging colormap and clean borders:

import seaborn as sns
fig, ax = plt.subplots(figsize=(4, 3.5))
sns.heatmap(matrix, annot=True, fmt=".2f", cmap="YlOrRd", ax=ax,
            cbar_kws={"shrink": 0.75, "aspect": 20},
            linewidths=1.5, linecolor="white",
            annot_kws={"size": 8, "weight": "medium"})
ax.set_xlabel("Predicted")
ax.set_ylabel("Actual")
fig.savefig("figures/fig_confusion.pdf")

Horizontal bar (leaderboard) — with "our method" highlight:

fig, ax = plt.subplots(figsize=FIG_SINGLE)
y_pos = np.arange(len(models))
colors = [BASELINE_COLOR] * len(models)
colors[our_idx] = OUR_COLOR
bars = ax.barh(y_pos, scores, color=colors, height=0.55,
               edgecolor="white", linewidth=0.5)
ax.set_yticks(y_pos)
ax.set_yticklabels(models)
ax.set_xlabel("Accuracy (%)")
ax.invert_yaxis()
for bar, s in zip(bars, scores):
    ax.text(bar.get_width() + 0.3, bar.get_y() + bar.get_height()/2,
            f"{s:.1f}", va="center", fontsize=8, color="#444")
fig.savefig("figures/fig_leaderboard.pdf")

Full pattern library (scaling laws, violin plots, multi-panel, radar): See references/data-visualization.md


Publication Style Quick Reference

VenueSingle ColFull WidthFont
NeurIPS5.5 in5.5 inTimes
ICML3.25 in6.75 inTimes
ICLR5.5 in5.5 inTimes
ACL3.3 in6.8 inTimes
AAAI3.3 in7.0 inTimes

Always export PDF for vector quality. PNG only for AI-generated diagrams.

Venue-specific details, LaTeX integration, font matching, accessibility checklist: See references/style-guide.md


Common Issues

IssueSolution
Fonts look wrong in LaTeXExport PDF, set text.usetex=True, or use font.family=serif
Figure too large for columnCheck venue width limits, use figsize in inches
Colors indistinguishable in printUse colorblind-safe palette + different line styles/markers
Gemini misspells labelsSpell out every label exactly in prompt, add "SPELL EXACTLY" constraint
Gemini ignores styleAdd more negative constraints, be more specific about hex colors
Blurry figures in PDFExport as PDF (vector), not PNG; or use 300+ DPI for PNG
Legend overlaps dataUse bbox_to_anchor, loc="upper left", or external legend
Too many tick labelsUse ax.xaxis.set_major_locator(MaxNLocator(5))

When to Use vs Alternatives

NeedThis SkillAlternative
Architecture diagramsGemini generationTikZ (manual), draw.io (interactive), Mermaid (simple)
Data chartsmatplotlib/seabornPlotly (interactive), R/ggplot2 (statistics-heavy)
Full paper writingUse with ml-paper-writing
Poster figuresLarger fonts, widerlatex-posters skill
Presentation figuresLarger text, fewer detailsPowerPoint/Keynote export

Quick Reference: File Naming Convention

figures/
├── gen_fig_<name>.py      # Generation script (always save for reproducibility)
├── fig_<name>.pdf         # Final vector output (for LaTeX)
├── fig_<name>.png         # Raster output (300 DPI, for AI-generated or fallback)
└── fig_<name>_attempt*.png # Gemini attempts (keep for comparison)

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

32.88%
按下载量换算314

Claude

31.26%
按下载量换算299

Cursor

18.26%
按下载量换算175

Gemini CLI

9.46%
按下载量换算90

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills