Claude Code Plugins

Community-maintained marketplace

Feedback

chart-generation

@YFOOOO/financial_agent
0
0

生成专业金融图表(K线图、技术指标图)。适用于数据可视化、技术分析展示、报告生成等场景。支持多种图表类型(basic、comprehensive)和自定义样式(深色、浅色主题)。

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name chart-generation
description 生成专业金融图表(K线图、技术指标图)。适用于数据可视化、技术分析展示、报告生成等场景。支持多种图表类型(basic、comprehensive)和自定义样式(深色、浅色主题)。
license MIT
allowed-tools generate_candlestick_chart, generate_comprehensive_chart
metadata [object Object]

Chart Generation Skill

专业的金融图表生成工具,基于 mplfinance 库。

Overview

本 Skill 提供以下核心功能:

  1. 基础K线图 - 经典的蜡烛图(Candlestick Chart)
  2. 综合技术图 - K线图 + 技术指标(MA、MACD、成交量)
  3. 主题定制 - 深色/浅色主题,专业美观

所有图表支持保存为 PNG 文件或在 Jupyter Notebook 中直接显示。

Quick Start

1. 准备数据

图表生成需要 OHLCV 数据(开盘、最高、最低、收盘、成交量)。 通常先调用 financial-data-fetch Skill 获取数据。

如需技术指标图表,还需调用 technical-indicators Skill 计算指标。

2. 选择图表类型

  • 基础K线图generate_candlestick_chart(仅蜡烛图 + 成交量)
  • 综合技术图generate_comprehensive_chart(K线 + MA + MACD + 成交量)

3. 调用工具

# 示例:生成综合技术图
result = generate_comprehensive_chart(
    data=stock_data,        # 包含 OHLCV 和技术指标的 DataFrame
    symbol="000001",        # 股票代码
    title="平安银行技术分析", # 图表标题
    theme="dark",           # 主题(dark/light)
    save_path="chart.png"   # 保存路径(可选)
)

Chart Types

1. Basic Candlestick Chart

Tool: generate_candlestick_chart

Purpose: 生成经典的蜡烛图,适用于:

  • 快速查看价格走势
  • 技术形态识别(如十字星、锤子线)
  • 简洁报告展示

Parameters:

  • data (DataFrame, required): 包含 OHLCV 数据
    • 必需列:日期(索引)、开盘、收盘、最高、最低、成交量
  • symbol (str, optional): 股票代码(用于标题)
  • title (str, optional): 自定义标题
  • theme (str, optional): 主题("dark" or "light",默认"dark")
  • save_path (str, optional): 保存路径(如 "output/chart.png")

Returns: Dict with:

  • success (bool): 是否成功
  • message (str): 结果描述
  • saved_path (str): 保存路径(如果指定)

Example:

result = generate_candlestick_chart(
    data=stock_data,
    symbol="000001",
    theme="dark",
    save_path="candlestick.png"
)
# 生成纯净的K线图 + 成交量副图

2. Comprehensive Chart

Tool: generate_comprehensive_chart

Purpose: 生成综合技术分析图表,适用于:

  • 专业技术分析
  • 多指标联合判断
  • 详细报告生成

Chart Layout:

┌─────────────────────────────┐
│  主图: K线 + MA(5/10/20/60) │  ← 蜡烛图 + 移动平均线
├─────────────────────────────┤
│  副图1: MACD               │  ← DIF/DEA/BAR柱状图
├─────────────────────────────┤
│  副图2: 成交量              │  ← 柱状图(红绿分色)
└─────────────────────────────┘

Parameters:

  • data (DataFrame, required): 包含 OHLCV + 技术指标数据
    • 必需列:日期、开盘、收盘、最高、最低、成交量
    • 可选列:MA_5, MA_10, MA_20, MA_60(移动平均线)
    • 可选列:MACD_DIF, MACD_DEA, MACD_BAR(MACD指标)
  • symbol (str, optional): 股票代码
  • title (str, optional): 自定义标题
  • theme (str, optional): 主题("dark" or "light")
  • save_path (str, optional): 保存路径

Returns: 同 Basic Chart

Example:

# 先获取数据和计算指标
stock_data = fetch_stock_data(symbol="000001", days=60)
stock_data = calculate_all_indicators(stock_data)

# 生成综合图表
result = generate_comprehensive_chart(
    data=stock_data,
    symbol="000001",
    title="平安银行 - 60日技术分析",
    theme="dark",
    save_path="comprehensive.png"
)

Themes

Dark Theme (默认)

适用于:

  • 现代化界面
  • 夜间查看
  • 专业演示

特点:

  • 黑色背景
  • 高对比度
  • 护眼配色

Light Theme

适用于:

  • 打印输出
  • 传统报告
  • 明亮环境

特点:

  • 白色背景
  • 清晰线条
  • 经典配色

自定义主题

主题配置文件位于 assets/chart_styles/

  • dark_theme.json - 深色主题配置
  • light_theme.json - 浅色主题配置

可以编辑 JSON 文件自定义:

  • 背景色、网格色
  • 蜡烛颜色(涨/跌)
  • 成交量颜色
  • MA 线条颜色和样式

Data Requirements

Minimum Required Columns

列名 类型 说明
日期 datetime 必需,作为索引或列
开盘 float 必需
收盘 float 必需
最高 float 必需
最低 float 必需
成交量 int/float 必需

Optional Columns (for Comprehensive Chart)

列名 类型 说明
MA_5, MA_10, MA_20, MA_60 float 移动平均线
MACD_DIF, MACD_DEA float MACD快慢线
MACD_BAR float MACD柱状图

Error Handling

1. 数据验证失败

错误:缺少必需列 ['开盘', '收盘', '最高', '最低']

解决: 确保数据包含所有必需的 OHLCV 列

2. 数据为空

错误:数据为空,无法生成图表

解决: 检查数据获取是否成功

3. 保存失败

错误:无法保存图表到 /invalid/path/chart.png

解决: 检查保存路径是否有效且有写入权限

4. 技术指标列缺失

警告:未找到 MA 指标列,将跳过均线绘制

说明: 不影响基础K线图生成,但综合图表会缺少对应指标

Performance Notes

  • 生成时间: 通常 < 2秒(60条数据)
  • 图片大小: 约 100-200 KB(PNG格式)
  • 分辨率: 默认 1200x800 像素(高清)
  • 内存使用: < 50 MB

Decision Tree

用户需求
    ├─ 仅查看价格走势?
    │   └─ 是 → generate_candlestick_chart
    │
    ├─ 需要技术指标分析?
    │   └─ 是 → generate_comprehensive_chart
    │
    └─ 选择主题
        ├─ 现代化/夜间 → theme="dark"
        └─ 打印/传统 → theme="light"

Best Practices

1. 数据量建议

# 推荐数据量
- 日K线: 30-120 条(1-6个月)
- 周K线: 50-200 条(1-4年)

# 避免过多数据
data = stock_data.tail(120)  # 只取最近120条

2. 标题规范

# 清晰的标题格式
title = f"{stock_name}({symbol}) - {days}日K线"
# 示例: "平安银行(000001) - 60日K线"

3. 保存路径管理

# 使用相对路径,按日期组织
from datetime import datetime
date_str = datetime.now().strftime("%Y%m%d")
save_path = f"outputs/{symbol}_{date_str}.png"

4. 错误处理

result = generate_comprehensive_chart(...)
if not result['success']:
    print(f"图表生成失败: {result['error']}")
else:
    print(f"图表已保存: {result['saved_path']}")

References

详细文档和配置说明见:

Script Implementation

图表生成逻辑实现在:

  • skill.py - Skill 主类(复用 core/visualization.py)

复用项目中的 core/visualization.py 模块,确保代码一致性。