Academic Figures

v1.0.0

Generate publication-quality academic figures from data with one command. Supports 7 chart types (bar, heatmap, scatter, line, box, forest, violin), 4 color...

0· 28·0 current·0 all-time

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for docsor1212/academic-figures.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "Academic Figures" (docsor1212/academic-figures) from ClawHub.
Skill page: https://clawhub.ai/docsor1212/academic-figures
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install academic-figures

ClawHub CLI

Package manager switcher

npx clawhub@latest install academic-figures
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
Name/description match the delivered artifacts: included Python scripts implement chart generation, CJK font detection, and the described chart types and options. No unrelated binaries or cloud credentials are requested.
Instruction Scope
SKILL.md instructions focus on loading data, detecting CJK fonts, and producing PNG/SVG output. The runtime instructions and the code operate on local files and do not direct data to external endpoints. The scripts do invoke local font discovery (fc-list) and execute the bundled detect_cjk_font.py, which is coherent with the CJK support claim.
Install Mechanism
There is no install spec and no external downloads; the skill is instruction-only with two included Python scripts. Nothing in the manifest attempts to fetch or execute remote archives.
Credentials
The skill declares no required environment variables or credentials, and the code only accesses local filesystem paths (font files, input JSON/CSV, and output images). The use of subprocess to run fc-list and the bundled detect script is consistent with font detection and does not require extra secrets.
Persistence & Privilege
The skill is not force-installed (always=false) and does not attempt to modify other skills or global configuration. It runs as a local script and does not request elevated or persistent platform privileges.
Assessment
This skill appears coherent and self-contained: it generates charts locally and auto-detects system CJK fonts. Before installing, ensure you have the expected Python environment (matplotlib, numpy) and run the scripts on sample data in a safe environment. Review the two included scripts (detect_cjk_font.py and gen_figure.py) yourself if you are concerned about behavior, and run them offline if you want to be certain no unexpected network activity occurs. If you rely on a managed agent, confirm that the agent's execution environment has no unusual mounts or network proxies that could expose input/output files.

Like a lobster shell, security has layers — review code before you run it.

latestvk9774ns72hktv4e976w1h07rh585p3xn
28downloads
0stars
1versions
Updated 4h ago
v1.0.0
MIT-0

Academic Figures — Publication-Quality Chart Generator

Generate figures from JSON/CSV data. Local execution, no data leaves the machine.

Quick Start

# Bar chart with CJK support
python3 scripts/gen_figure.py -t bar -d data.json -o figure.png --cjk \
  --title "图2 主标题 / Subtitle" --ylabel "准确率 Accuracy (%)"

# Heatmap
python3 scripts/gen_figure.py -t heatmap -d data.json -o heatmap.png --cjk \
  --cmap RdBu_r --vmin -20 --vmax 45

# Scatter with trend line
python3 scripts/gen_figure.py -t scatter -d data.csv -o scatter.png \
  --xlabel "Baseline (%)" --ylabel "Gain (%)" --theme nature

Chart Types

TypeCommandKey Features
Bar-t barGrouped bars, error bars, significance brackets
Heatmap-t heatmapCell annotations, custom colormap, colorbar
Scatter-t scatterTrend line, r value, color grouping, mean points
Line-t lineMultiple series, error bands, markers
Box-t boxBox-and-whisker, jitter points
Forest-t forestCI whiskers, overall diamond, ref line
Violin-t violinDensity estimation, inner mean/median

Color Themes

  • --theme nature — Nature journal palette (vibrant, distinct)
  • --theme lancet — Lancet medical palette (bold, high-contrast)
  • --theme conservative — Professional muted (safe for any field)
  • --theme default — Balanced, versatile

CJK / Chinese Support

Pass --cjk to auto-detect and load system CJK fonts. Zero manual configuration needed.

python3 scripts/gen_figure.py -t bar -d data.json -o fig.png --cjk

Font detection priority: Noto Sans CJK → PingFang → Microsoft YaHei → WQY → AR PL → Droid.

For custom font: --cjk-font /path/to/font.ttf

Data Input

JSON (full features) or CSV (basic). See references/data-formats.md for complete schema per chart type.

JSON bar chart example:

{
  "labels": ["Group A", "Group B"],
  "series": {"Treatment": [75, 82], "Control": [68, 70]},
  "errors": {"Treatment": [3, 2], "Control": [2, 1]},
  "significance": {"Treatment:0": "***", "Control:1": "NS"}
}

Key Flags

FlagDescription
--title "text"Figure title. Supports \n for newline (works in shell with $'line1\nline2' or when called from Python)
--xlabel, --ylabelAxis labels
--width N, --height NFigure size in inches
--show-valuesShow numeric labels on bars
--no-trendHide trend line (scatter)
--no-legendHide legend
--cmap NAMEColormap (heatmap)
--vmin, --vmaxValue range (heatmap)

Output

  • .png — 300 DPI raster (default)
  • .svg — Vector (pass .svg extension to --out)

When Agent Generates Figures (Not CLI)

If creating a figure via Python script rather than CLI:

  1. Always call detect_cjk_font() first if any label may contain CJK
  2. Use fontproperties=font_prop on all text-setting calls with CJK content
  3. Set plt.rcParams['axes.unicode_minus'] = False (prevents minus sign boxes)
  4. Verify output: file size > 20KB for multi-label charts indicates font loaded
  5. Preferred output: PNG at 300 DPI, bbox_inches='tight', white background

Comments

Loading comments...