← Back to Skills

data-viz-recipes

v1.0.0 approved Data Processing updated today
USK v3 ✅ Verified ⚡ Auto-Convert
⬇ Download
Install Guide↓
🤖 Agent install commands (curl / MCP / Claude Desktop)
▸ curl one-liner
curl -L -o data-viz-recipes.skill   "https://aiskillstore.io/v1/agent/skills/e503b15a-0d8f-439b-b515-3b3e86431392/download?platform=ClaudeCode"
▸ MCP tool call (after registering Skill Store MCP)
{
  "tool": "download_skill",
  "arguments": {
    "skill_id": "e503b15a-0d8f-439b-b515-3b3e86431392",
    "platform": "ClaudeCode"
  }
}
▸ Claude Desktop / Cursor MCP config (one-time)
{
  "mcpServers": {
    "skill-store": {
      "url": "https://aiskillstore.io/mcp/"
    }
  }
}
📖 Full agent API guide: /llms.txt  ·  MCP server card

Data visualization code generator: auto-detects data shape, recommends chart type, generates matplotlib/plotly/D3 code, applies colorblind-safe Okabe-Ito palette. Zero external deps. Actions: recommend, generate_code, palette, audit, examples.

# data-visualization # chart # matplotlib # plotly # d3 # colorblind # code-generation

Basic Info

Owner 👤 aiskillstore-team Category Data Processing Registered 2026-05-03 Last Updated 2026-05-03 Latest Version 1.0.0 Packaged At 2026-05-03 Vetting Status approved Downloads 0 Checksum (SHA256) 5610a8dce1a5f3ba7ddb42f07c17262ae5f9cf16c74225de9dfbd10135cf3f29

⚡ AGENT INFO USK v3

Capabilities
chart_recommendation visualization_code_generation matplotlib_codegen plotly_codegen colorblind_palette
Permissions
✗ network
✗ filesystem
✗ subprocess
Interface
type: cli   entry_point: main.py   runtime: python3   call_pattern: stdin_stdout
Agent API
# 스킬 스키마 조회 (에이전트가 호출 방법을 파악) GET /v1/agent/skills/e503b15a-0d8f-439b-b515-3b3e86431392/schema # 플랫폼별 자동 변환 다운로드 GET /v1/agent/skills/e503b15a-0d8f-439b-b515-3b3e86431392/download?platform=OpenClaw GET /v1/agent/skills/e503b15a-0d8f-439b-b515-3b3e86431392/download?platform=ClaudeCode GET /v1/agent/skills/e503b15a-0d8f-439b-b515-3b3e86431392/download?platform=ClaudeCodeAgentSkill GET /v1/agent/skills/e503b15a-0d8f-439b-b515-3b3e86431392/download?platform=Cursor GET /v1/agent/skills/e503b15a-0d8f-439b-b515-3b3e86431392/download?platform=GeminiCLI GET /v1/agent/skills/e503b15a-0d8f-439b-b515-3b3e86431392/download?platform=CodexCLI GET /v1/agent/skills/e503b15a-0d8f-439b-b515-3b3e86431392/download?platform=CustomAgent

Installation

Compatible Platforms any

1
Install the skill using openclaw_skill_manager.py.
python openclaw_skill_manager.py --install data-viz-recipes
2
Verify installation
python openclaw_skill_manager.py --list-installed
3
Install a specific version (optional)
python openclaw_skill_manager.py --install data-viz-recipes --version 1.0.0
1
Download the skill package.
curl -O https://aiskillstore.io/v1/skills/e503b15a-0d8f-439b-b515-3b3e86431392/download
2
Place it in the Claude Code commands directory.
unzip data-viz-recipes.skill -d ~/.claude/commands/data-viz-recipes/
3
Use it as a slash command in Claude Code.
/data-viz-recipes
1
Download the Agent Skills package.
curl -O https://aiskillstore.io/v1/agent/skills/e503b15a-0d8f-439b-b515-3b3e86431392/download?platform=ClaudeCodeAgentSkill
2
Unzip it into the Claude Code skills directory.
unzip data-viz-recipes-agent-skill-*.skill -d ~/.claude/skills/data-viz-recipes/
3
Restart Claude Code — the skill is auto-loaded at session start. No slash command needed.
1
Download the Cursor-converted package.
curl -O https://aiskillstore.io/v1/agent/skills/e503b15a-0d8f-439b-b515-3b3e86431392/download?platform=Cursor
2
Unzip and place it in a permanent location.
unzip data-viz-recipes-cursor-*.skill -d ~/.cursor/skills/data-viz-recipes/
3
Add the MCP server config to .cursor/mcp.json, then restart Cursor.
cat ~/.cursor/skills/data-viz-recipes/cursor_mcp_config.json
1
Download the Gemini CLI-converted package.
curl -O https://aiskillstore.io/v1/agent/skills/e503b15a-0d8f-439b-b515-3b3e86431392/download?platform=GeminiCLI
2
Unzip and place it in a permanent location.
unzip data-viz-recipes-geminicli-*.skill -d ~/.gemini/skills/data-viz-recipes/
3
Add the MCP server config to ~/.gemini/settings.json, then restart Gemini CLI.
cat ~/.gemini/skills/data-viz-recipes/gemini_settings_snippet.json
1
Download the Codex CLI-converted package.
curl -O https://aiskillstore.io/v1/agent/skills/e503b15a-0d8f-439b-b515-3b3e86431392/download?platform=CodexCLI
2
Unzip and place it in a permanent location.
unzip data-viz-recipes-codexcli-*.skill -d ~/.codex/skills/data-viz-recipes/
3
Add the MCP server config to ~/.codex/config.toml, then restart Codex CLI.
cat ~/.codex/skills/data-viz-recipes/codex_config_snippet.toml
1
Download the skill package via REST API.
GET https://aiskillstore.io/v1/skills/e503b15a-0d8f-439b-b515-3b3e86431392/download
2
Place it in your agent platform's skills directory.
cp data-viz-recipes.skill ./skills/
3
Fetch platform-specific details via the Install Guide API.
GET https://aiskillstore.io/v1/skills/e503b15a-0d8f-439b-b515-3b3e86431392/install-guide?platform=CustomAgent

Security Vetting Report

Vetting Result APPROVED

Findings: ["메타데이터 경고: 권장 필드 없음: 'category' (SKILL.md v2 권장)", "메타데이터 경고: 권장 필드 없음: 'requirements' (SKILL.md v2 권장)", "메타데이터 경고: 권장 필드 없음: 'changelog' (SKILL.md v2 권장)"]

✅ No security risks found.

AI Review Stage

Reviewer gemini Risk Level 🟢 Low Review Summary 데이터 시각화 코드 생성 스킬로, 선언된 권한을 준수하며 악의적인 동작이 발견되지 않았습니다.
Reasoning

스킬 메타데이터와 코드 파일을 분석한 결과, 다음과 같은 판단 근거를 도출했습니다. 1. **권한 일치 여부:** 스킬 메타데이터에 `network: false`, `filesystem: false`, `subprocess: false`로 선언되어 있습니다. 코드(`main.py`, `lib/detector.py`, `lib/codegen.py`)를 검토한 결과, 외부 네트워크 통신, 파일 시스템 접근(내부 경로 처리 외), 외부 프로세스 실행을 시도하는 코드는 발견되지 않았습니다. `os` 모듈은 `sys.path` 설정 및 `os.path.dirname`, `os.path.abspath`와 같은 경로 조작에만 사용되며, 이는 선언된 `filesystem: false` 권한과 일치합니다. 2. **악의적 목적 코드:** 데이터 탈취, 시스템 파괴, 난독화 등의 악의적인 목적을 가진 코드는 발견되지 않았습니다. 정적 분석 결과에서도 `red_flags_found` 및 `obfuscation_warnings`가 없음을 확인했습니다. 3. **선언되지 않은 외부 통신:** 코드 내에서 `requests`, `urllib`, `socket` 등 외부 통신을 위한 라이브러리 사용이나 직접적인 네트워크 연결 시도는 발견되지 않았습니다. 4. **사용자 데이터 무단 수집/전송:** 스킬은 `stdin`을 통해 입력받은 `data_sample`을 처리하고, 결과를 `stdout`으로 반환하는 `stdin_stdout` 패턴을 따릅니다. 사용자 데이터를 외부로 저장하거나 전송하는 어떠한 시도도 발견되지 않았습니다. 5. **코드 품질 및 목적 일치:** 스킬은 데이터 시각화 코드 생성이라는 명확한 목적을 가지고 있으며, `lib/detector.py`에서 데이터 형태를 감지하고 `lib/codegen.py`에서 Matplotlib, Plotly, D3.js 코드를 생성하는 등 기능이 모듈화되어 있습니다. 특히, 사용자 입력 문자열(`title`, `x_col`, `y_col`)을 생성되는 코드에 삽입할 때 `repr()` 함수를 사용하여 안전하게 이스케이프 처리하는 방식을 채택하여 코드 인젝션 위험을 방지하고 있습니다. 이는 좋은 보안 관행이며, 스킬의 목적에 부합하는 안전한 코드 품질을 보여줍니다. 종합적으로, 이 스킬은 선언된 권한을 충실히 준수하며, 악의적인 동작이나 보안 취약점을 포함하고 있지 않은 것으로 판단됩니다.

Version History

Version USK v3 Vetting Status Packaged At Downloads Changelog
v1.0.0 approved 2026-05-03 ⬇ 0

Examples 7

Representative input/output examples for this skill. Agents can use these to understand how to invoke the skill and what output to expect.

시계열 데이터 차트 추천

날짜+수치 컬럼에서 최적 차트 자동 추천 / Auto-recommend chart for time series data

📥 Input
{
  "action": "recommend",
  "data_sample": {
    "columns": [
      "date",
      "revenue"
    ],
    "rows": [
      [
        "2024-01",
        12000
      ],
      [
        "2024-02",
        15000
      ],
      [
        "2024-03",
        13500
      ],
      [
        "2024-04",
        18000
      ],
      [
        "2024-05",
        21000
      ]
    ]
  }
}
📤 Output
{
  "action": "recommend",
  "ok": true,
  "recommendation": {
    "alternatives": [
      {
        "chart_type": "area",
        "reason": "Area chart emphasizes cumulative volume.",
        "score": 0.75
      },
      {
        "chart_type": "bar",
        "reason": "Bar chart works for discrete time intervals.",
        "score": 0.6
      }
    ],
    "data_shape": "timeseries",
    "detected_columns": {
      "x": "date",
      "y": "revenue"
    },
    "primary": {
      "chart_type": "line",
      "reason": "Time series data detected (date column). Line chart best shows trends over time.",
      "score": 0.95
    }
  }
}
범주형 데이터 막대 그래프 코드 생성 (matplotlib)

카테고리+값 데이터로 matplotlib 막대 그래프 코드 생성 / Generate matplotlib bar chart for categorical data

📥 Input
{
  "action": "generate_code",
  "backend": "matplotlib",
  "chart_type": "bar",
  "colorblind_safe": true,
  "data_sample": {
    "columns": [
      "month",
      "sales"
    ],
    "rows": [
      [
        "Jan",
        8500
      ],
      [
        "Feb",
        9200
      ],
      [
        "Mar",
        11000
      ]
    ]
  },
  "language": "ko",
  "title": "\uc6d4\ubcc4 \ub9e4\ucd9c"
}
📤 Output
{
  "action": "generate_code",
  "code": {
    "chart_type": "bar",
    "matplotlib": "import matplotlib.pyplot as plt\nimport matplotlib\nmatplotlib.rcParams[\u0027axes.prop_cycle\u0027] = matplotlib.cycler(color=[\u0027#E69F00\u0027,\u0027#56B4E9\u0027,\u0027#009E73\u0027,\u0027#F0E442\u0027,\u0027#0072B2\u0027,\u0027#D55E00\u0027,\u0027#CC79A7\u0027,\u0027#000000\u0027])\nmonths = [\u0027Jan\u0027, \u0027Feb\u0027, \u0027Mar\u0027]\nsales = [8500, 9200, 11000]\nfig, ax = plt.subplots(figsize=(8, 5))\nax.bar(months, sales, color=\u0027#E69F00\u0027)\nax.set_title(\u0027\uc6d4\ubcc4 \ub9e4\ucd9c\u0027)\nax.set_xlabel(\u0027month\u0027)\nax.set_ylabel(\u0027sales\u0027)\nplt.tight_layout()\nplt.show()\n",
    "notes": [
      "Okabe-Ito \uc0c9\ub9f9 \uce5c\ud654 \ud314\ub808\ud2b8 \uc801\uc6a9\ub428"
    ]
  },
  "ok": true
}
분포 데이터 차트 추천

수치 단일 컬럼 분포 시각화 추천 / Recommend chart for numerical distribution

📥 Input
{
  "action": "recommend",
  "data_sample": {
    "columns": [
      "score"
    ],
    "rows": [
      [
        72
      ],
      [
        85
      ],
      [
        91
      ],
      [
        68
      ],
      [
        77
      ],
      [
        88
      ],
      [
        95
      ],
      [
        63
      ]
    ]
  }
}
📤 Output
{
  "action": "recommend",
  "ok": true,
  "recommendation": {
    "alternatives": [
      {
        "chart_type": "box",
        "reason": "Box plot shows quartiles and outliers.",
        "score": 0.8
      },
      {
        "chart_type": "violin",
        "reason": "Violin plot shows full distribution shape.",
        "score": 0.7
      }
    ],
    "data_shape": "distribution",
    "detected_columns": {
      "y": "score"
    },
    "primary": {
      "chart_type": "histogram",
      "reason": "Single numerical column detected. Histogram best shows value distribution.",
      "score": 0.92
    }
  }
}
Okabe-Ito 색맹 친화 팔레트

색맹 친화 팔레트 8색 반환 / Return full 8-color Okabe-Ito colorblind-safe palette

📥 Input
{
  "action": "palette",
  "palette_size": 8
}
📤 Output
{
  "action": "palette",
  "ok": true,
  "palette": {
    "colors": [
      {
        "hex": "#E69F00",
        "index": 0,
        "name": "Orange",
        "rgb": [
          230,
          159,
          0
        ],
        "wcag_use": "fill/background only"
      },
      {
        "hex": "#56B4E9",
        "index": 1,
        "name": "Sky Blue",
        "rgb": [
          86,
          180,
          233
        ],
        "wcag_use": "fill/background only"
      }
    ],
    "name": "Okabe-Ito"
  }
}
데이터 시각화 적합성 감사

데이터 샘플의 시각화 적합성 사전 점검 / Audit data sample suitability for visualization

📥 Input
{
  "action": "audit",
  "data_sample": {
    "columns": [
      "product",
      "units",
      "revenue"
    ],
    "rows": [
      [
        "A",
        100,
        5000
      ],
      [
        "B",
        200,
        9500
      ],
      [
        "C",
        150,
        7200
      ]
    ]
  }
}
📤 Output
{
  "action": "audit",
  "audit": {
    "column_count": 3,
    "data_shape": "categorical",
    "detected_types": {
      "product": "categorical",
      "revenue": "numerical",
      "units": "numerical"
    },
    "issues": [],
    "recommendations": [
      "Bar or horizontal bar chart recommended for multi-series categorical data.",
      "Consider using colorblind-safe palette for accessibility."
    ],
    "row_count": 3,
    "visualizable": true
  },
  "ok": true
}
산점도 코드 생성 (plotly)

수치 2컬럼 산점도 plotly 코드 생성 / Generate plotly scatter chart for two numerical columns

📥 Input
{
  "action": "generate_code",
  "backend": "plotly",
  "chart_type": "scatter",
  "colorblind_safe": true,
  "data_sample": {
    "columns": [
      "height_cm",
      "weight_kg"
    ],
    "rows": [
      [
        165,
        62
      ],
      [
        172,
        70
      ],
      [
        158,
        55
      ],
      [
        180,
        82
      ]
    ]
  },
  "language": "en",
  "title": "Height vs Weight"
}
📤 Output
{
  "action": "generate_code",
  "code": {
    "chart_type": "scatter",
    "notes": [
      "Okabe-Ito orange used for colorblind-safe scatter points."
    ],
    "plotly": "import plotly.graph_objects as go\nx = [165, 172, 158, 180]\ny = [62, 70, 55, 82]\nfig = go.Figure(go.Scatter(x=x, y=y, mode=\u0027markers\u0027,\n    marker=dict(color=\u0027#E69F00\u0027, size=8)))\nfig.update_layout(title=\u0027Height vs Weight\u0027,\n    xaxis_title=\u0027height_cm\u0027, yaxis_title=\u0027weight_kg\u0027)\nfig.show()\n"
  },
  "ok": true
}
예시 레시피 목록 조회

지원되는 차트 유형별 예시 레시피 목록 반환 / List built-in example recipes for all chart types

📥 Input
{
  "action": "examples"
}
📤 Output
{
  "action": "examples",
  "examples": [
    {
      "chart_type": "line",
      "data_shape": "timeseries",
      "description": "Trend over time \u2014 date + numeric value"
    },
    {
      "chart_type": "bar",
      "data_shape": "categorical",
      "description": "Category comparison \u2014 label + numeric value"
    },
    {
      "chart_type": "scatter",
      "data_shape": "correlation",
      "description": "Two numeric columns \u2014 correlation or relationship"
    },
    {
      "chart_type": "histogram",
      "data_shape": "distribution",
      "description": "Single numeric column \u2014 frequency distribution"
    },
    {
      "chart_type": "pie",
      "data_shape": "part_to_whole",
      "description": "Few categories \u2014 part-to-whole proportions (max 7 slices)"
    }
  ],
  "ok": true
}

All examples are also available via the agent API: /v1/agent/skills/e503b15a-0d8f-439b-b515-3b3e86431392/schema

Reviews & Ratings

No reviews yet. Be the first to leave one!

✍️ Write a Review