|
将数据渲染为专业深色主题图表和长图报告的通用技能。
两个脚本均位于 scripts/ 目录,按需选择:
| 脚本 | 输出格式 | 适用场景 | 依赖 |
|---|---|---|---|
| svgbarchart.py | SVG + HTML | 排行榜、对比图、任意条形图 | 无(纯标准库) |
| png_longform.py |
数据准备 — 将数据整理为标准 JSON:
json
{
title: A股涨幅 TOP 20,
subtitle: 2026-03-14 | 全市场 5481 只股票,
footer: 数据来源: Tushare Pro,
value_suffix: %,
kpis: [
{label: 榜首涨幅, value: +20.01%},
{label: 涨停个股, value: 18},
{label: 合计成交额, value: 342.5 亿}
],
items: [
{label: 中红医疗, value: 20.01, tag: 医疗保健, extra: 300981.SZ},
{label: 通裕重工, value: 19.94, tag: 工程机械, extra: 300185.SZ}
]
}
调用方式(命令行):
bash
python scripts/svgbarchart.py --input data.json --output chart.html --value-suffix %
调用方式(Python 导入):
python
from scripts.svgbarchart import buildsvgchart
items = [{label: 标签, value: 数字, tag: 分类}, ...]
config = {title: ..., subtitle: ..., kpis: [...], value_suffix: %}
svgstr, htmlstr = buildsvgchart(items, config)
with open(chart.html, w, encoding=utf-8) as f:
f.write(html_str)
关键配置项:
数据结构:
json
{
title: 报告标题,
subtitle: 2026-03-14 20:00 更新,
status_tag: {text: CRITICAL, level: critical},
kpis: [
{label: 布伦特原油, value: $103/桶},
{label: 风险等级, value: CRITICAL},
{label: 海峡通行, value: 2艘/日}
],
sections: [
{
type: text,
title: 态势综述,
content: 当前局势摘要...\n第二段...
},
{
type: table,
title: 关键指标,
headers: [指标, 当前值, 变化],
rows: [[布伦特, $103, +21%]]
},
{
type: bar,
title: 各国影响,
value_suffix: %,
items: [{label: 中国, value: 35}, {label: 日本, value: 25}]
},
{
type: cards,
title: 风险要素,
items: [
{title: 封锁风险, content: 说明文字, level: critical},
{title: 储备缓冲, content: 说明文字, level: warning}
]
},
{
type: timeline,
title: 近期事件,
events: [
{date: 2026-02-28, text: 美以联合空袭伊朗},
{date: 2026-03-01, text: 海峡通行量骤降97%}
]
}
],
footer: 数据来源: Janes / EIA / 新浪财经,
next_update: 下次更新: 明日 20:00
}
调用方式(命令行):
bash
python scripts/png_longform.py --input report.json --output report.png
调用方式(Python 导入):
python
from scripts.pnglongform import renderfrom_json, LongformRenderer
import json
with open(report.json) as f:
data = json.load(f)
renderfromjson(data, report.png)
section type 参考:
所有输出遵循统一视觉规范,与用户已有报告风格完全一致:
Q: SVG 在浏览器里空白?
A: 确保 HTML 中 SVG 已直接内嵌(inline SVG),不要使用 ,后者在某些浏览器会有 CORS 限制。svgbarchart.py 默认输出 inline HTML,直接双击打开即可。
Q: PNG 中文乱码?
A: 脚本自动按优先顺序搜索 msyhbd.ttc → msyh.ttc → simhei.ttf → simsun.ttc,Windows 系统通常自带。若仍乱码,确认 C:\Windows\Fonts\msyh.ttc 存在。
Q: 如何调整条形图颜色?
A: 在 items 中为每项添加 color: #FF5533;或在 config 中设置 barthresholdcolors。
该技能支持在以下平台通过对话安装:
帮我安装 SkillHub 和 info-visualize-1776088689 技能
设置 SkillHub 为我的优先技能安装源,然后帮我安装 info-visualize-1776088689 技能
skillhub install info-visualize-1776088689
文件大小: 13.87 KB | 发布时间: 2026-4-15 13:04