{
"title": "PPTX 引擎全功能压测",
"subtitle": "覆盖 9 种 OOXML 图表 + 4 种 mpl 图表 + richtext + image + table(merge) + grid · 2026-05-11",
"theme": {
"bg": "#0D1B2A",
"accent": "#1B98F5",
"title": "#F0F4F8",
"body": "#C5CDD8",
"muted": "#6B7B8D",
"font": "Microsoft YaHei"
},
"slides": [
{
"title": "Bar — 柱状图",
"blocks": [
{
"type": "chart",
"chart": {
"type": "bar",
"categories": ["Q1", "Q2", "Q3", "Q4"],
"series": [
{"name": "营收", "values": [120, 145, 168, 192]},
{"name": "成本", "values": [80, 92, 105, 118]}
],
"chart_title": "2025 季度营收 vs 成本 (M¥)",
"x_label": "季度",
"y_label": "金额 (M¥)",
"data_labels": true
}
}
]
},
{
"title": "Line + Pie — 双图栅格",
"layout": {"kind": "grid", "cols": [0.5, 0.5], "gap": "0.3in", "padding": "0.1in"},
"blocks": [
{
"type": "chart",
"chart": {
"type": "line",
"categories": ["Jan", "Feb", "Mar", "Apr", "May", "Jun"],
"series": [
{"name": "DAU (万)", "values": [28, 32, 35, 40, 38, 45]},
{"name": "MAU (万)", "values": [85, 92, 98, 105, 110, 118]}
],
"chart_title": "用户增长趋势",
"x_label": "月份",
"y_label": "用户量 (万)",
"data_labels": true
}
},
{
"type": "chart",
"chart": {
"type": "pie",
"categories": ["北美", "亚太", "欧洲", "中东", "拉美"],
"series": [
{"name": "收入占比", "values": [38, 28, 18, 10, 6]}
],
"chart_title": "区域收入分布",
"data_labels": true
}
}
],
"notes": "Line 图表 + Pie 图表同页栅格布局。"
},
{
"title": "Stacked Bar + Stacked Bar % — 堆叠对比",
"layout": {"kind": "grid", "cols": [0.5, 0.5], "gap": "0.3in", "padding": "0.1in"},
"blocks": [
{
"type": "chart",
"chart": {
"type": "stacked_bar",
"categories": ["P1", "P2", "P3", "P4", "P5"],
"series": [
{"name": "前端", "values": [40, 35, 30, 28, 25]},
{"name": "后端", "values": [30, 28, 35, 32, 30]},
{"name": "测试", "values": [20, 22, 20, 25, 28]}
],
"chart_title": "各项目人力投入 (人天)",
"x_label": "项目",
"y_label": "人天",
"data_labels": true
}
},
{
"type": "chart",
"chart": {
"type": "stacked_bar_pct",
"categories": ["P1", "P2", "P3", "P4", "P5"],
"series": [
{"name": "前端", "values": [40, 35, 30, 28, 25]},
{"name": "后端", "values": [30, 28, 35, 32, 30]},
{"name": "测试", "values": [20, 22, 20, 25, 28]}
],
"chart_title": "各项目人力占比 (%)",
"x_label": "项目",
"y_label": "占比",
"data_labels": true
}
}
]
},
{
"title": "Area + Scatter — 面积图 & 散点图",
"layout": {"kind": "grid", "cols": [0.5, 0.5], "gap": "0.3in", "padding": "0.1in"},
"blocks": [
{
"type": "chart",
"chart": {
"type": "area",
"categories": ["00:00", "04:00", "08:00", "12:00", "16:00", "20:00"],
"series": [
{"name": "CPU (%)", "values": [15, 8, 22, 55, 48, 32]},
{"name": "Memory (%)", "values": [35, 32, 38, 52, 50, 42]}
],
"chart_title": "服务器资源使用率 (24h)",
"x_label": "时间",
"y_label": "使用率 (%)",
"data_labels": true
}
},
{
"type": "chart",
"chart": {
"type": "scatter",
"categories": [1, 2, 3, 4, 5],
"series": [
{"name": "方案A", "values": [2.1, 3.5, 5.2, 7.8, 9.1]},
{"name": "方案B", "values": [1.8, 2.9, 4.1, 6.2, 8.0]},
{"name": "方案C", "values": [2.5, 4.0, 6.0, 8.5, 10.2]}
],
"chart_title": "方案性能对比",
"x_label": "并发数 (K)",
"y_label": "响应时间 (ms)",
"data_labels": true
}
}
]
},
{
"title": "Combo 柏拉图 + Donut — 组合图 & 环形图",
"layout": {"kind": "grid", "cols": [0.55, 0.45], "gap": "0.3in", "padding": "0.1in"},
"blocks": [
{
"type": "chart",
"chart": {
"type": "combo",
"categories": ["冲头磨损", "定位偏差", "材料硬点", "润滑不足", "温度异常"],
"series": [
{"name": "发生次数", "values": [68, 15, 9, 5, 3]},
{"name": "累计占比 (%)", "values": [68, 83, 92, 97, 100]}
],
"chart_title": "柏拉图 — 缺陷原因分析",
"x_label": "原因",
"y_label": "次数 / 累计%",
"data_labels": true
}
},
{
"type": "chart",
"chart": {
"type": "donut",
"categories": ["完成", "进行中", "待启动", "阻塞"],
"series": [
{"name": "任务", "values": [42, 8, 5, 1]}
],
"chart_title": "项目任务状态分布",
"data_labels": true
}
}
],
"notes": "Combo 图表:第一个 series 为 bar,标记 line 的 series 自动叠加为折线(柏拉图)。"
},
{
"title": "Gantt — 甘特图 (matplotlib)",
"blocks": [
{
"type": "mpl",
"mpl": {
"chart_type": "gantt",
"chart_title": "智能仓储 V3 项目里程碑",
"data": {
"tasks": [
{"name": "需求评审", "start": "2026-04-01", "end": "2026-04-15", "progress": 100},
{"name": "技术方案设计", "start": "2026-04-10", "end": "2026-04-28", "progress": 100},
{"name": "核心模块开发", "start": "2026-04-20", "end": "2026-05-20", "progress": 75},
{"name": "API 联调", "start": "2026-05-10", "end": "2026-05-30", "progress": 40},
{"name": "集成测试", "start": "2026-05-25", "end": "2026-06-10", "progress": 0},
{"name": "UAT 上线", "start": "2026-06-05", "end": "2026-06-20", "progress": 0}
]
}
}
}
],
"notes": "matplotlib 甘特图。已完成=深色,进行中=半透明,待开始=浅色。"
},
{
"title": "Fishbone + Radar — 鱼骨图 & 雷达图 (matplotlib)",
"layout": {"kind": "grid", "cols": [0.5, 0.5], "gap": "0.3in", "padding": "0.1in"},
"blocks": [
{
"type": "mpl",
"mpl": {
"chart_type": "fishbone",
"chart_title": "端子接触不良 — 鱼骨图",
"data": {
"problem": "端子\n接触不良",
"categories": [
{"name": "人员", "causes": ["操作培训不足", "疲劳作业", "新人占比高"]},
{"name": "机器", "causes": ["冲头磨损", "定位夹具松动", "保养周期过长"]},
{"name": "材料", "causes": ["铜材硬度波动", "来料表面氧化"]},
{"name": "方法", "causes": ["参数设定偏差", "无标准化SOP"]},
{"name": "环境", "causes": ["车间温度波动", "振动干扰"]}
]
}
}
},
{
"type": "mpl",
"mpl": {
"chart_type": "radar",
"chart_title": "供应商综合评估",
"data": {
"categories": ["质量", "交期", "成本", "技术", "服务", "合规"],
"series": [
{"name": "供应商A", "values": [92, 85, 78, 90, 82, 95]},
{"name": "供应商B", "values": [80, 92, 88, 75, 90, 85]},
{"name": "供应商C", "values": [70, 78, 95, 68, 72, 80]}
]
}
}
}
],
"notes": "鱼骨图 (人机料法环测) + 雷达图同页。"
},
{
"title": "Funnel + RichText — 漏斗图 & 富文本 (matplotlib)",
"layout": {"kind": "grid", "cols": [0.4, 0.6], "gap": "0.3in", "padding": "0.15in"},
"blocks": [
{
"type": "mpl",
"mpl": {
"chart_type": "funnel",
"chart_title": "销售转化漏斗",
"data": {
"stages": [
{"name": "访问", "value": 15000},
{"name": "注册", "value": 4500},
{"name": "试用", "value": 1200},
{"name": "询价", "value": 380},
{"name": "成交", "value": 95}
]
}
}
},
{
"type": "richtext",
"runs": [
{"t": "转化率分析\n\n", "size": 20, "bold": true, "color": "#1B98F5"},
{"t": "访问 → 注册\n", "size": 15, "bold": true},
{"t": " 4,500 / 15,000 = ", "size": 13},
{"t": "30.0%\n\n", "size": 13, "bold": true, "color": "#4ADE80"},
{"t": "注册 → 试用\n", "size": 15, "bold": true},
{"t": " 1,200 / 4,500 = ", "size": 13},
{"t": "26.7%\n\n", "size": 13, "bold": true, "color": "#FBBF24"},
{"t": "试用 → 成交\n", "size": 15, "bold": true},
{"t": " 95 / 1,200 = ", "size": 13},
{"t": "7.9%\n\n", "size": 13, "bold": true, "color": "#F87171"},
{"t": "整体转化率\n", "size": 15, "bold": true},
{"t": " 95 / 15,000 = ", "size": 13},
{"t": "0.63%", "size": 16, "bold": true, "color": "#EF4444"},
{"t": "\n\n", "size": 13},
{"t": "💡 关键瓶颈在", "size": 12, "color": "#6B7B8D", "italic": true},
{"t": "试用→成交", "size": 12, "bold": true, "color": "#F87171", "italic": true},
{"t": "阶段", "size": 12, "color": "#6B7B8D", "italic": true}
]
}
],
"notes": "漏斗图 (mpl) 左侧 + 富文本分析右侧。富文本包含多字号、多颜色、加粗、斜体。"
},
{
"title": "Table (merge) + Image + RichText — 三栏混合",
"layout": {"kind": "grid", "cols": [0.35, 0.3, 0.35], "gap": "0.2in", "padding": "0.1in"},
"blocks": [
{
"type": "table",
"table": {
"headers": ["指标", "现状", "目标"],
"rows": [
["不良率", "7.83%", "< 0.1%"],
["CPK", "0.82", "≥ 1.33"],
["客户投诉", "3件/月", "0件"],
["ROI", "—", "< 4月"]
],
"merges": [[5, 0, 5, 2]]
}
},
{
"type": "image",
"path": "crates/tui/assets/scripts/test_logo.png",
"fit": "contain"
},
{
"type": "richtext",
"runs": [
{"t": "📋 图例说明\n\n", "size": 16, "bold": true, "color": "#1B98F5"},
{"t": "Bar / Line / Pie\n", "size": 12, "bold": true},
{"t": " 原生 OOXML 图表\n", "size": 11, "color": "#6B7B8D"},
{"t": " 9 种类型 + Combo\n\n", "size": 11, "color": "#6B7B8D"},
{"t": "Gantt / Fishbone\n", "size": 12, "bold": true},
{"t": " matplotlib 渲染\n", "size": 11, "color": "#6B7B8D"},
{"t": " 声明式 JSON 驱动\n\n", "size": 11, "color": "#6B7B8D"},
{"t": "Richtext / Table\n", "size": 12, "bold": true},
{"t": " 多字号/颜色/加粗/斜体\n", "size": 11, "color": "#6B7B8D"},
{"t": " 合并单元格支持\n\n", "size": 11, "color": "#6B7B8D"},
{"t": "Image\n", "size": 12, "bold": true},
{"t": " fit=contain/cover\n", "size": 11, "color": "#6B7B8D"},
{"t": " PIL 尺寸感知", "size": 11, "color": "#6B7B8D"}
]
}
],
"notes": "三栏混合:表格(合并单元格) + 图片(contain) + 富文本。"
},
{
"title": "✅ 全功能验证通过",
"bullets": [
"9 种 OOXML 原生图表:bar / line / pie / stacked_bar / stacked_bar_pct / area / scatter / donut / combo",
"4 种 matplotlib 复杂图表:gantt / fishbone / radar / funnel",
"6 种栅格布局 (2-col / 3-col / 不同权重比)",
"富文本 runs:bold / italic / 多字号 / 多颜色",
"图片嵌入:fit=contain / cover + PIL 尺寸感知",
"表格合并单元格:merges 参数",
"自定义主题:深色工业风",
"旧管线兼容:bullets 字段正常渲染"
]
}
]
}