← Back to Skills Marketplace
docsor1212

Academic Figures

by docsor1212 · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ Security Clean
54
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install academic-figures
Description
Generate publication-quality academic figures from data with one command. Supports 7 chart types (bar, heatmap, scatter, line, box, forest, violin), 4 color...
README (SKILL.md)

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

Type Command Key Features
Bar -t bar Grouped bars, error bars, significance brackets
Heatmap -t heatmap Cell annotations, custom colormap, colorbar
Scatter -t scatter Trend line, r value, color grouping, mean points
Line -t line Multiple series, error bands, markers
Box -t box Box-and-whisker, jitter points
Forest -t forest CI whiskers, overall diamond, ref line
Violin -t violin Density 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

Flag Description
--title "text" Figure title. Supports `\
for newline (works in shell with$'line1\
line2'` or when called from Python)
--xlabel, --ylabel Axis labels
--width N, --height N Figure size in inches
--show-values Show numeric labels on bars
--no-trend Hide trend line (scatter)
--no-legend Hide legend
--cmap NAME Colormap (heatmap)
--vmin, --vmax Value 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
Usage Guidance
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.
Capability Analysis
Type: OpenClaw Skill Name: academic-figures Version: 1.0.0 The skill bundle is a legitimate tool for generating academic figures using Matplotlib. The scripts (scripts/gen_figure.py and scripts/detect_cjk_font.py) perform local data processing and font detection without any network activity, data exfiltration, or suspicious execution patterns. The instructions in SKILL.md are strictly aligned with the stated purpose of rendering charts and handling CJK characters correctly.
Capability Assessment
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.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install academic-figures
  3. After installation, invoke the skill by name or use /academic-figures
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
v1.0.0 initial release: 7 chart types, 4 themes, CJK auto-detect, CSV long-format support, 300dpi+SVG
Metadata
Slug academic-figures
Version 1.0.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is Academic Figures?

Generate publication-quality academic figures from data with one command. Supports 7 chart types (bar, heatmap, scatter, line, box, forest, violin), 4 color... It is an AI Agent Skill for Claude Code / OpenClaw, with 54 downloads so far.

How do I install Academic Figures?

Run "/install academic-figures" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Academic Figures free?

Yes, Academic Figures is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Academic Figures support?

Academic Figures is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Academic Figures?

It is built and maintained by docsor1212 (@docsor1212); the current version is v1.0.0.

💬 Comments