SkillHub

byteplan-chart

v1.0.2

BytePlan AI 图表生成技能。当用户查询 byteplan 中的数据、请求数据可视化、生成图表(如"查看不同性别分数段分布"、"查询学生成绩分布"、"byteplan 数据分析")时自动触发。支持 12 种图表类型(柱状图、折线图、饼图等)。

Sourced from ClawHub, Authored by wangshuaiitr-ai

Installation

Please help me install the skill `byteplan-chart` from SkillHub official store. npx skills add wangshuaiitr-ai/byteplan-chart

BytePlan Chart - BytePlan AI 图表生成技能

功能描述

通过 BytePlan AI 接口自动生成数据可视化图表,支持 12 种图表类型。

配置说明

环境变量(.env 文件)

# BytePlan API 配置
BYTEPLAN_BASE_URL=https://uatapp.byteplan.com
BYTEPLAN_AUTH_USER=PC
BYTEPLAN_AUTH_PASS=你的认证密码

# 登录参数
BYTEPLAN_USERNAME=你的用户名
BYTEPLAN_PASSWORD=你的密码(会自动 RSA 加密)
BYTEPLAN_GRANT_TYPE=password
BYTEPLAN_SCOPE=write
# BYTEPLAN_PUBLIC_KEY_ID 不再需要,运行时动态获取

# AI 配置
BYTEPLAN_AGENT_ID=Agent ID(可选,留空则自动生成)
BYTEPLAN_PAGE_CODE=AI_REPORT

# 图表配置
CHART_WIDTH=800
CHART_HEIGHT=600
CHART_OUTPUT_DIR=charts

配置项说明

配置项 说明 默认值
BYTEPLAN_BASE_URL BytePlan API 基础 URL https://uatapp.byteplan.com
BYTEPLAN_AUTH_USER API 认证用户名 PC
BYTEPLAN_AUTH_PASS API 认证密码 -
BYTEPLAN_USERNAME 登录用户名 -
BYTEPLAN_PASSWORD 登录密码(自动 RSA 加密) -
BYTEPLAN_AGENT_ID AI Agent ID 自动生成
CHART_OUTPUT_DIR 图表输出目录 charts

使用方法

命令行

cd skills/byteplan-chart
uv run python main.py <查询内容>

示例

# 查询不同分数段学生数量
uv run python main.py 查询不同分数段学生数量

# 查看不同性别分数段分布
uv run python main.py 查看不同性别分数段分布

# 生成折线图
uv run python main.py 展示每月销售趋势

支持的图表类型

全部支持(12 种)✅

类型 说明 状态
Line 折线图
Column 柱状图(支持分组/堆叠)
Bar 条形图
Area 面积图
Pie 饼图
Rose 南丁格尔玫瑰图
Scatter 散点图
Box 箱型图
Heatmap 热力图
DualAxisChart 双轴图(柱状图 + 折线图)
DetailTable 明细表
PivotTable 透视表

测试时间: 2026-03-13 12:40
测试结果: 12/12 通过 ✅

工作流程

  1. 🔑 请求公钥接口获取 RSA 公钥(含 keyId 和 key)
  2. 🔐 使用公钥对密码进行 RSA 加密
  3. 🔑 使用加密后的密码和 keyId 登录获取 access_token
  4. 📡 调用 AI 接口识别 model_code
  5. 📊 执行 AI 分析请求获取图表数据
  6. 🎨 使用 matplotlib 渲染图表为 PNG(纯 Python 方案,自动检测中文字体

渲染方案

当前使用:matplotlib(纯 Python)

特性 说明
渲染引擎 matplotlib 3.10+
字体处理 自动检测系统字体并配置
支持平台 Windows / macOS / Linux
输出格式 PNG(150 DPI)

字体检测

渲染时自动执行: 1. 检测操作系统 2. 查找预装中文字体 3. 配置 matplotlib 字体参数 4. 输出检测日志

支持的字体: - Windows: Microsoft YaHei(微软雅黑)、SimHei(黑体)、SimSun(宋体) - macOS: PingFang SC(苹方)、Heiti SC(黑体) - Linux: WenQuanYi Zen Hei(文泉驿)、Noto Sans CJK

如遇到中文乱码

# Linux 安装字体
sudo apt-get install fonts-wqy-zenhei fonts-noto-cjk  # Ubuntu/Debian
sudo yum install wqy-zenhei-fonts google-noto-sans-cjk-fonts  # CentOS/RHEL

输出

  • 图表文件: charts/antv_chart_YYYYMMDD_HHMMSS.png
  • 控制台输出: 完整的 API 响应和图表信息

依赖

  • Python 3.8+
  • Python 包:requests, python-dotenv, pycryptodome, matplotlib, numpy

安装依赖

第一步:创建虚拟环境

Windows:

cd C:Userswangshuai.openclawskillsbyteplan-chart
uv venv

macOS / Linux:

cd ~/.openclaw/skills/byteplan-chart
uv venv

第二步:安装 Python 包

uv pip install requests python-dotenv pycryptodome matplotlib numpy

🍎 macOS 兼容性

  • 完全兼容 macOS 10.15+ (Catalina 或更高版本)
  • 中文字体: 自动检测并使用 PingFang SC(苹方)或 Heiti SC(黑体)
  • 路径处理: 使用 pathlib.Path 自动适配 macOS 路径格式
  • 编码: UTF-8 编码,无乱码问题

验证安装

cd skills/byteplan-chart
uv run python main.py 查询不同分数段学生数量

查看输出中的字体检测信息:

🔍 检测系统中文字体...
✅ 找到中文字体:Microsoft YaHei
✅ 字体配置成功:Microsoft YaHei

🔧 修复记录(2026-03-13)

问题 1:渲染脚本调用命令错误

  • 文件: main.py (第 473 行)
  • 问题: 使用 py 命令在虚拟环境中找不到 matplotlib
  • 修复: 改为 uv run python 确保在虚拟环境中运行
  • 代码: ['uv', 'run', 'python', str(render_script), ...]

问题 2:参数检查错误

  • 文件: render_chart.py (第 607 行)
  • 问题: len(sys.argv) < 4 检查错误,实际只需要 3 个参数
  • 修复: 改为 len(sys.argv) < 3
  • 说明: 参数 = 脚本名 + JSON 字符串 + 输出路径

问题 3:依赖缺失

  • 问题: 虚拟环境中缺少 matplotlib 等必要的 Python 包
  • 修复: 使用 uv pip install 安装所有依赖

安全提示

  • .env 文件包含敏感信息,请勿提交到版本控制
  • 建议将 .env 添加到 .gitignore
  • 定期更新 API 凭证