← Back to Skills Marketplace
aipoch-ai

Forest Plot Styler

by AIpoch · GitHub ↗ · v0.1.0 · MIT-0
cross-platform ✓ Security Clean
192
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install forest-plot-styler
Description
Beautify meta-analysis forest plots with customizable odds ratio points and confidence intervals
README (SKILL.md)

Forest Plot Styler

ID: 157

Beautifies Meta-analysis or subgroup analysis forest plots, customizes Odds Ratio point sizes and confidence interval line styles.


Features

  • Reads Meta-analysis data (CSV/Excel format)
  • Draws high-quality forest plots
  • Customizes Odds Ratio point sizes, colors, and shapes
  • Customizes confidence interval line styles (color, thickness, endpoint style)
  • Supports subgroup analysis display
  • Automatically calculates and displays pooled effect values
  • Outputs to PNG, PDF, or SVG format

Usage

python scripts/main.py --input \x3Cdata.csv> [options]

Parameters

Parameter Type Default Required Description
--input, -i string - Yes Input data file (CSV or Excel)
--output, -o string forest_plot.png No Output file path
--format, -f string png No Output format (png/pdf/svg)
--point-size int 8 No OR point size
--point-color string #2E86AB No OR point color
--ci-color string #2E86AB No Confidence interval line color
--ci-linewidth int 2 No Confidence interval line thickness
--ci-capwidth int 5 No Confidence interval endpoint width
--summary-color string #A23B72 No Pooled effect point color
--summary-shape string diamond No Pooled effect point shape
--subgroup string - No Subgroup analysis column name
--title, -t string Forest Plot No Chart title
--xlabel, -x string Odds Ratio (95% CI) No X-axis label
--reference-line float 1.0 No Reference line position
--width, -W int 12 No Image width (inches)
--height, -H int auto No Image height (inches)
--dpi int 300 No Image resolution
--font-size int 10 No Font size
--style, -s string default No Preset style (default/minimal/dark)

Input Data Format

CSV/Excel files must contain the following columns:

Column Name Description Type
study Study name Text
or Odds Ratio value Numeric
ci_lower Confidence interval lower bound Numeric
ci_upper Confidence interval upper bound Numeric
weight Weight (optional, for point size) Numeric
subgroup Subgroup label (optional) Text

Sample Data

study,or,ci_lower,ci_upper,weight,subgroup
Study A,0.85,0.65,1.12,15.2,Drug A
Study B,0.72,0.55,0.94,18.5,Drug A
Study C,1.15,0.88,1.50,12.3,Drug B
Study D,0.95,0.75,1.20,14.8,Drug B

Examples

Basic Usage

python scripts/main.py -i meta_data.csv

Custom Style

python scripts/main.py -i meta_data.csv \
    --point-color="#E63946" \
    --ci-color="#457B9D" \
    --point-size=10 \
    --ci-linewidth=3 \
    -t "Meta-Analysis of Treatment Effects"

Subgroup Analysis

python scripts/main.py -i meta_data.csv \
    --subgroup subgroup_column \
    --summary-color="#F4A261" \
    -o subgroup_forest.png

Output PDF Vector Graphic

python scripts/main.py -i meta_data.csv \
    -f pdf \
    -o forest_plot.pdf

Preset Styles

default

  • Blue color scheme
  • Standard font size
  • White background

minimal

  • Clean lines
  • Grayscale color scheme
  • No grid lines

dark

  • Dark background
  • Bright data points
  • Suitable for dark theme presentations

Dependencies

  • Python >= 3.8
  • matplotlib >= 3.5.0
  • pandas >= 1.3.0
  • numpy >= 1.20.0
  • openpyxl >= 3.0.0 (for reading Excel)

Output Example

Generated forest plot contains:

  • Left side: Study name list
  • Middle: OR values and confidence intervals
  • Right side: Weight percentage (if available)
  • Bottom: Pooled effect value (diamond marker)
  • Reference line (OR=1)

Notes

  1. Ensure input file encoding is UTF-8
  2. OR values are automatically converted when log scale is suggested
  3. Studies with confidence intervals crossing 1 are not statistically significant
  4. Weight values are used to adjust point size, reflecting study contribution

Risk Assessment

Risk Indicator Assessment Level
Code Execution Python/R scripts executed locally Medium
Network Access No external API calls Low
File System Access Read input files, write output files Medium
Instruction Tampering Standard prompt guidelines Low
Data Exposure Output files saved to workspace Low

Security Checklist

  • No hardcoded credentials or API keys
  • No unauthorized file system access (../)
  • Output does not expose sensitive information
  • Prompt injection protections in place
  • Input file paths validated (no ../ traversal)
  • Output directory restricted to workspace
  • Script execution in sandboxed environment
  • Error messages sanitized (no stack traces exposed)
  • Dependencies audited

Prerequisites

# Python dependencies
pip install -r requirements.txt

Evaluation Criteria

Success Metrics

  • Successfully executes main functionality
  • Output meets quality standards
  • Handles edge cases gracefully
  • Performance is acceptable

Test Cases

  1. Basic Functionality: Standard input → Expected output
  2. Edge Case: Invalid input → Graceful error handling
  3. Performance: Large dataset → Acceptable processing time

Lifecycle Status

  • Current Stage: Draft
  • Next Review Date: 2026-03-06
  • Known Issues: None
  • Planned Improvements:
    • Performance optimization
    • Additional feature support
Usage Guidance
This skill appears to do what it claims (make styled forest plots) and contains only a single Python script plus example data. Before installing/running: 1) Review the script yourself or run it on non-sensitive sample data — it will read any file path you give it, so avoid passing paths to private system files. 2) Update and audit dependencies: requirements.txt is unpinned and omits openpyxl (needed for Excel input per SKILL.md). 3) Run in a sandboxed environment (virtualenv/container) if you don't fully trust the source. 4) If you plan to let an agent invoke this autonomously, ensure the agent cannot be tricked into supplying arbitrary filesystem paths or output destinations. These steps will reduce risk while using the tool.
Capability Analysis
Type: OpenClaw Skill Name: forest-plot-styler Version: 0.1.0 The skill is a legitimate data visualization tool designed to generate forest plots from CSV or Excel files using Matplotlib and Pandas. The code in scripts/main.py implements standard statistical calculations (inverse variance weighting) and plotting logic without any indicators of malicious intent, such as network requests, unauthorized file access, or obfuscation. The SKILL.md documentation is transparent about its functionality and includes a responsible risk assessment.
Capability Assessment
Purpose & Capability
Name/description align with what the files do: the SKILL.md and scripts/main.py read CSV/Excel input, calculate pooled effects, and draw forest plots with styling options. There are no unrelated credentials, binaries, or surprising capabilities requested.
Instruction Scope
Runtime instructions instruct running the included Python script on user-supplied input files (CSV/XLSX) and writing output images — this matches the purpose. The SKILL.md includes a security checklist that recommends denying path traversal (../), but the script does not implement explicit path restriction or sandboxing; it will read any file path the user supplies. That is expected for a command-line tool but you should avoid running it in contexts where untrusted agents could pass arbitrary filesystem paths (to prevent accidental disclosure of sensitive files).
Install Mechanism
No install spec (instruction-only install) which keeps disk writes minimal. Dependencies are listed in requirements.txt but are unpinned and incomplete: SKILL.md mentions openpyxl for Excel support, yet requirements.txt does not include openpyxl. This is likely an oversight (packaging inconsistency) rather than malicious, but you should pin and audit dependencies before installing.
Credentials
The skill requests no environment variables, no credentials, and no config paths. Its filesystem access is limited to reading the input file you provide and writing the output image, which is proportionate to the stated purpose.
Persistence & Privilege
The skill does not request persistent or privileged platform presence (always:false). It does not attempt to modify other skills or system-wide agent settings. Autonomous invocation is allowed by default (disable-model-invocation:false), but that is platform default and not in itself a red flag here.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install forest-plot-styler
  3. After installation, invoke the skill by name or use /forest-plot-styler
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v0.1.0
Initial release—forest-plot-styler provides flexible, customizable forest plot generation for meta-analysis. - Draws high-quality forest plots from CSV/Excel data - Customizes odds ratio point sizes, shapes, and colors - Configures confidence interval line styles and pooled effect display - Supports subgroup analysis and multiple output formats (PNG, PDF, SVG) - Includes preset visual styles for different presentation needs - CLI script with comprehensive parameter controls for plot aesthetics
Metadata
Slug forest-plot-styler
Version 0.1.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is Forest Plot Styler?

Beautify meta-analysis forest plots with customizable odds ratio points and confidence intervals. It is an AI Agent Skill for Claude Code / OpenClaw, with 192 downloads so far.

How do I install Forest Plot Styler?

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

Is Forest Plot Styler free?

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

Which platforms does Forest Plot Styler support?

Forest Plot Styler is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Forest Plot Styler?

It is built and maintained by AIpoch (@aipoch-ai); the current version is v0.1.0.

💬 Comments