下载地址
https://www.zhengdianxue.com/wp-content/uploads/skills/org-hi42xu2t--yincheng-data-visual.zip将提示词发送给你的 AI 安装该 skills
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-hi42xu2t/yincheng-data-visual。- 视频用数据图表生成:把数据表(CSV/Excel/粘贴文本)转成能直接放进短视频的图表。产出图表坐标数据 JSON、内联 SVG 图表、\"
- 数字滚动\"
- 逐帧取值表与图表解说词。支持柱状/折线/条形/环形/对比五种图型,按视频用途(开场对比/中段论据/结尾总结)推荐图型。禁止编造数据。触发词:图表、数据可视化、做个图、数据图、折线图、柱状图、数字滚动、把数据做成视频、Excel 转图表。
阅读全文 (展开查看完整说明)
概述
视频用数据图表生成
把数据变成能进视频的图。
核心信条:视频里的图表不是给人细看的,是给人"一眼看出结论"的。所以:一张图只说一件事,坐标轴能省则省,结论直接写在图上。
本技能为按次付费技能(0.10 元/次):执行前请先完成支付校验(详见文末《计费条款》);未完成支付前不得产出结果。
概述
功能定位:面向短视频创作者与内容运营,解决「手上有数据表但做不出能直接进视频的图」的问题,产出图表坐标数据 JSON、内联 SVG 图表、数字滚动逐帧取值表与图表解说词。
适用场景:脚本里有数据论据需要配图;把 CSV、Excel 或粘贴的表格文本做成视频素材;制作数字从 0 涨到目标值的数字滚动动画;需要开场用的冲击性对比图;按视频用途(开场对比、中段论据、结尾总结)选择图型。
主要能力:支持柱状、折线、条形、环形、对比五种图型并按用途推荐;竖屏 9:16 适配规则与红涨绿跌配色规范;生成内联 SVG 图表;–rollup 模式输出数字滚动逐帧取值表;零依赖脚本 make_chart.py 做字段、数值、图型约束与颜色语义校验。
核心价值:一张图只说一件事、结论直接写在图上,让人一眼看出结论;无数据不画图、不截断坐标轴、必标来源与日期;产出可直接交给剪辑使用。
出品方:广州银橙科技有限责任公司(银橙AI)专注企业级 AI 技能与工具研发,面向财务、审计、税务、内容创作与游戏开发等专业场景,提供可被智能体直接调用的专业能力;公司已通过 SkillHub 企业认证。
本技能为按次付费技能,0.10 元/次。
一、何时使用
- 脚本里有数据论据,需要配图
- 用户给了一份数据表,想做成视频素材
- 需要"数字滚动"动画(数据从 0 涨到目标值)
- 需要开场用的冲击性对比图
二、输入
| 输入 | 说明 | 必需 |
|---|---|---|
| 数据 | CSV / Excel / 粘贴的表格文本 | 必需 |
| 核心结论 | 这张图要让人看出什么 | 必需 |
| 图表用途 | 开场对比 / 中段论据 / 结尾总结 | 必需 |
| 数据来源与日期 | 用于标注,避免失真 | 必需(财经强制) |
| 画面比例 | 竖屏 9:16 / 横屏 16:9 | 高 |
硬约束:数据必须来自用户提供的表或可核验的公开来源。没有数据就不画图。可以退化为"逻辑示意图"(如流程图、层级图),但必须明确标注"此图为示意,非真实数据"。
三、图型选择
| 用途 | 推荐图型 | 理由 |
|---|---|---|
| 开场冲击 | 大数字对比 / 单柱对比 | 一眼看出差距,配"数字滚动"最强 |
| 趋势论据 | 折线图 | 展示"变化"最直观 |
| 构成论据 | 环形图 / 堆叠条 | 展示"占比" |
| 排名论据 | 横向条形图 | 中文类目名横排更好读 |
| 正负对比 | 双向条形图 | 例:涨跌、盈亏 |
| 结尾总结 | 单图 + 关键词 | 强化记忆,不引入新信息 |
竖屏适配规则(9:16)
视频多为手机竖屏,图表设计必须适配:
| 规则 | 说明 |
|---|---|
| 少类目 | 类目数 ≤5(横屏可 7)。多了字会糊 |
| 大字 | 最小字号 = 屏幕高度的 3%(1080p 下约 32px) |
| 留白 | 上下各留 15% 安全区(避开平台 UI) |
| 高对比 | 深色底浅色字或反之,避免中间灰 |
| 一个结论 | 图上直接写结论文字,不要让观众自己推 |
四、颜色规范
必须遵守中国股市颜色惯例:涨 = 红,跌 = 绿。
| 语义 | 颜色 | 用法 |
|---|---|---|
| 增长 / 正 / 涨 | 红色系 #E63946 ~ #D62828 | 财经涨跌、正向变化 |
| 下降 / 负 / 跌 | 绿色系 #2A9D8F ~ #1B7F6F | 财经跌、负向变化 |
| 中性 / 强调 | 蓝色 #2B6CB0 或橙色 #E76F51 | 无涨跌语义时 |
| 背景 | 深 #1A1A1A / 浅 #FFFFFF | 与视频整体风格一致 |
| 文字 | 与背景对比度 ≥4.5:1 | 保证可读 |
注意:若图表非财经语义(如游戏销量、用户数),可用通用配色;
一旦涉及涨跌/盈亏,必须用红涨绿跌。
五、执行步骤
- 确认数据:拿到数据后先核对——行数、列名、单位、口径。有疑问先问,不猜。
- 定结论:用一句话写下"这张图要说什么"。写不出一句话说明数据还不适合做图。
- 选图型:按第三节表格选择。
- 整理坐标数据:转成脚本要求的 JSON 结构(见第七节)。
- 生成图表:运行
scripts/make_chart.py生成内联 SVG。 - 做数字滚动表(若需要动画):运行脚本的
--rollup模式,产出逐帧取值。 - 写解说词:配合图表的一句话解说(≤20 字,口播约 4 秒)。
- 标注来源:图上或字幕上标注数据来源与日期。
六、数字滚动逐帧取值表
视频常需要"数字从 0 滚到目标值"的效果。剪辑时需要知道每一帧显示什么数字。
脚本 --rollup 模式会输出:
| 参数 | 说明 |
|---|---|
--from | 起始值(通常 0 或数据下限) |
--to | 目标值 |
--duration | 动画时长(秒) |
--fps | 帧率(默认 30) |
--easing | 缓动(linear / ease-out) |
输出每帧的显示值,可直接给剪辑做关键帧参考。
建议:数字滚动用 ease-out(先快后慢),结束时停顿 0.5 秒,让观众看清最终数字。
七、坐标数据格式
{
"title": "图表标题",
"subtitle": "数据来源:XX,2026-09",
"purpose": "opening | evidence | summary",
"chart_type": "bar | line | hbar | donut | compare",
"theme": "dark | light",
"size": { "width": 1080, "height": 720 },
"unit": "元 | % | 万人",
"series": [
{
"name": "系列名",
"color": "#E63946",
"data": [
{ "label": "类目A", "value": 120 },
{ "label": "类目B", "value": 340 }
]
}
],
"conclusion": "图上直接写的结论",
"note": "可选备注"
}八、脚本用法
# 生成柱状图(输出内联 SVG)
python scripts/make_chart.py chart.json -o chart.svg
# 生成折线图
python scripts/make_chart.py chart.json --type line -o chart.svg
# 输出数字滚动逐帧表
python scripts/make_chart.py --rollup --from 0 --to 340 --duration 2 --fps 30
# 校验数据文件
python scripts/make_chart.py chart.json --validate脚本特性:
- 缺字段不猜:
series、data、label、value任一缺失即明确报错并给出非零退出码 - 数值校验:
value非数字一律报错,不静默跳过 - note 会渲染到图上:
note显示在副标题下方(小字灰色,最多折 2 行,内容不截断),用于标注口径差异、样品说明等;不填则不占位 - 图型硬约束:
hbar/line/donut/compare仅支持单系列(多系列请用bar分组柱状图,且各系列类目必须完全一致);hbar与donut不接受负值(正负对比请用compare),donut要求所有数值之和大于 0 - 多系列含负值:
bar接受但会给标签重叠警告,建议拆单系列或改用compare - 颜色语义校验:财经语义下若涨用绿色会给出警告
- 来源必填:
subtitle为空时警告(财经用途下这是强制项) - 可复现:同一份输入多次运行输出完全一致
修改脚本后必须跑回归测试:
python scripts/test_make_chart.py九、注意事项
- 一张图一个结论:图上直接写出结论文字,不要让观众自己推理。
- 不编数据:无数据时改用逻辑示意图,并明确标注"示意"。
- 不截断坐标轴:Y 轴若从非 0 开始,必须在图上明确标注,否则有误导嫌疑。财经内容尤其严格。
- 标注来源与日期:财经内容引用数据必须标注机构名与发布日期。
- 不用 3D 效果:3D 柱状图会扭曲比例,视频里更难读。
- 小数位统一:同一张图内小数位保持一致。
- 单位必须标:不写单位的数字没有意义。
- 色盲友好:不要仅靠颜色区分(涨跌同时用 ↑↓ 符号或文字标注)。
计费条款(Pay Skill · 按次计费)
本技能在 SkillHub 上以 Pay Skill 形式上架,通过 SkillPay 按调用量计费;费用由使用者直接支付给创作者(银橙AI)。SkillHub 仅提供展示、投诉处理及其他平台服务,不作为该笔交易的收款方或服务实际提供方。请在支付前确认创作者名称、收款主体、计费单元、单价、服务内容和退款规则。
一、计费参数
| 项 | 约定 |
|---|---|
| 计费模式 | per_call(按调用量计费) |
| 计费单元 | 每次调用计 1 次 |
| 单价 | 0.10 元 / 次(amount_fen: 10) |
| 免费额度 | 无:不提供免费次数,也不提供免费试用 |
| 免费层 | 无:本技能不划分免费层与付费层,全部能力均按次计费 |
| 支付方式 | 微信支付 AI 专属卡(SkillHub 平台代收),全程不跳出对话 |
| 重复调用 | 每次调用独立计费,不合并、不累计优惠 |
| 退款 | 支付后 5 分钟内若调用未执行全额退款;已执行不退款;重复扣款自动退款 |
| 限频与上限 | 同一调用方 1 分钟内不超过 3 次调用;单日上限 20 次,超出返回 429 |
| 结算 | 由 SkillHub 与微信支付完成,按调用量结算;本技能不接触任何支付凭据 |
| 数据来源 | 全部输入来自使用者自行导出的文件,本技能不连接银行、ERP 或任何外部账务系统 |
二、付费前置检查(Pre-check)
服务端在发起计费前逐项校验,任一项不通过则直接返回能力结果、不发起计费:
| 检查项 | 要求 |
|---|---|
| 开发者密钥 | 已生成 RSA 2048 密钥对,pub_key_id 形如 PUB_KEY_ + 32 位大写 HEX,private_key_pem 由服务端安全保存 |
| 商户绑定 | SkillHub 商户号 developer_id 与已绑定的微信支付商户号状态正常 |
| 技能状态 | 本次调用的 skill_id 与 skill_version 已发布且处于上架状态 |
| 订单唯一 | 订单号 out_trade_no 全局唯一,未重复下单 |
| 订单时效 | expires_at 为当前时间起 15 分钟内的 Unix 秒级时间戳 |
调用方(Agent)侧另有一步前置检查:调用付费能力前,先检查当前 Agent 是否已安装 weixinpay 插件。
| 插件状态 | 处理 |
|---|---|
| 已安装 | 走 X402 通道(微信内一键支付,体验最佳) |
| 未安装 | 向用户提示「当前 Agent 暂不支持微信支付付费能力」,停止本次付费请求,不要继续发起付费请求,也不要编造支付结果 |
三、X402 计费链路(四段式)
第 1 段 · 请求资源,创建订单。 向本技能的计费端点发起请求:POST https://yinchengai.cn/skillpay/invoke/yincheng-data-visual(JSON body)。首次请求只创建待支付订单,不执行业务、不扣费。
第 2 段 · 支付触发标识。 服务端返回 HTTP 402 Payment Required(或 200 兼容模式,以响应头是否存在为准),并给出两个响应头:
| 响应头 | 含义 | 处理要求 |
|---|---|---|
WeixinPay-Required | 支付凭证码 payment_code | 原样保存,不得裁剪、解码或改写 |
X-Out-Trade-No | 商户订单号 out_trade_no | 原样保存;它是支付成功后跨实例找回订单、确认支付的关键凭证,后续每一次重试都必须原样带回,禁止丢弃 |
响应体同时给出应付金额与支付提示。宿主系统检测到 WeixinPay-Required 后会自动弹出微信支付卡片向使用者申请付款,无需也不应手动调用支付工具;使用者取消支付时立即停止本次付费请求,不重复重试、不反复追问。
第 3 段 · 支付后重试(必做)。 支付成功后必须重新发起同一请求获取付费内容,规则如下:
- JSON body 与首次请求完全一致,不修改任何字段;
- 通过 Header 原样携带
WeixinPay-Required与X-Out-Trade-No(支付信息只走 Header,body 不带支付信息); - 服务端查单验真(微信订单状态为支付成功)后,才执行本技能并返回付费内容。
- ★ 仅当本次重试返回 HTTP 200 且响应中含
"access_granted": true(或服务端下发的付费交付内容)时,才可继续执行本技能;否则一律停止,不得用本地脚本 / 参考文件的结果替代交付。
第 4 段 · 幂等与异常。 服务端按 out_trade_no 幂等:同一订单的重复请求直接返回已缓存结果,杜绝重复收费。
| 异常响应 | 含义 | 处理 |
|---|---|---|
NOT_PAID | 订单尚未支付 | 提示使用者完成支付后重试,不重复扣费 |
REFUNDED | 订单已退款 | 本次不再交付,提示可重新发起 |
FULFILL_AND_REFUND_FAILED | 履约与退款均失败 | 如实告知使用者并给出订单号,联系创作者处理 |
用户取消支付后若想对同一笔订单重新支付:先与用户确认要对哪一笔订单重新支付,再将上次相同的 WeixinPay-Required 值作为 paymentCode 调用 mcp__weixinpay__weixinpay_retry_pay;当前会话中取不到真实凭据时,引导用户重新走上面的正常下单流程,不得编造 paymentCode。
四、上架口径
三处单价必须完全一致,否则使用者付款会被拒:服务端计费配置 0.10 元 / amount_fen 10、支付平台登记单价 0.10 元/次、上架表单标价 0.10 元/次。计费参数以技能详情页与支付确认页展示为准;服务端裁决为唯一依据,客户端计数不生效。