SuperAPI AI 工具集

create-visualization

设计与创作

查看项目

更新于 10-16 04:51

技能介绍

用途

该技能面向 STEM 教学场景,用于生成静态图表与动画,帮助解释物理、数学等概念。同时提供一套为 Excel/DAX/Power Query 函数生成解释性可视化图片的流程。

主要能力

1. 物理:受力分析图(Free Body Diagrams)

使用 Matplotlib,脚本位于 scripts/physics_fbd.py。

示例代码:

from scripts.physics_fbd import draw_inclined_plane_fbd, draw_two_blocks_rope

# 斜面与力的分解
draw_inclined_plane_fbd(mass=4, angle=30, show_components=True)

# 两物块由绳子连接
draw_two_blocks_rope(mass_A=2, mass_B=3, F_pull=10)

输出:PNG 文件,保存在 learning-notes/ 文件夹。

2. 数学:函数图与几何

使用 Matplotlib,脚本位于 scripts/math_plots.py。

示例代码:

from scripts.math_plots import plot_function, draw_unit_circle, draw_coordinate_plane
import numpy as np

# 函数图
plot_function(lambda x: np.sin(x), x_range=(-2*np.pi, 2*np.pi), title="sin(x)")

# 带角度的单位圆
draw_unit_circle(angles_deg=[0, 30, 45, 60, 90])

# 带向量的坐标平面
draw_coordinate_plane(
    vectors=[((0,0), (3,2), "a", "red"), ((0,0), (1,4), "b", "blue")]
)

3. 流程图

使用 Matplotlib,脚本位于 scripts/flowchart.py。

示例代码:

from scripts.flowchart import draw_simple_flowchart, draw_decision_flowchart

# 线性流程
draw_simple_flowchart([
    ("Start", "start"),
    ("Input x", "io"),
    ("Process", "process"),
    ("End", "end"),
])

# 分支判断
draw_decision_flowchart(
    before_decision=[("Start", "start")],
    decision_text="x > 0?",
    yes_branch=[("Positive", "process")],
    no_branch=[("Negative", "process")],
    after_merge=[("End", "end")]
)

4. 动画(Manim)

用于 3Blue1Brown 风格动画,完整指南见 references/manim-guide.md。

scripts/manim_physics.py 中可用的场景:

场景 说明
VectorAddition 首尾相接的向量加法
ForcesOnBox 带运动的受力分析图
NewtonThirdLaw 作用力与反作用力对
InclinedPlane 斜面上的力与方程
ProjectileMotion 抛物线轨迹与速度向量
CircularMotion 向心加速度
AtwoodIncline 滑轮系统(可自定义 m1、m2、θ)

渲染命令:

# 预览(低画质,快速)
manim -pql scripts/manim_physics.py VectorAddition

# GIF 输出
manim -ql --format=gif scripts/manim_physics.py VectorAddition

自定义动画示例:

from manim import *

class MyScene(Scene):
    def construct(self):
        circle = Circle(color=BLUE)
        self.play(Create(circle))
        self.play(circle.animate.shift(RIGHT * 2))

5. 函数解释可视化

用于生成解释 Excel/DAX/Power Query 函数工作方式的图片。

快速开始:

# 1. 生成可视化
python3 tools/visualize_function.py excel left 1

# 2. 上传到服务器(--mkdir 在需要时创建目录)
python3 tools/ftp_upload.py -f media/function-viz/excel/left-1.png -r wp-content/uploads/function-viz/excel/ --mkdir

# 3. 在 JSON 示例中添加 image_url,然后发布
python3 tools/smart_publish.py --slugs left --program excel --allow

输出:media/function-viz/{program}/{slug}-{example_number}.png 服务器路径:https://www.thepexcel.com/wp-content/uploads/function-viz/{program}/{slug}-{example}.png

支持的函数:

函数 说明
LEFT 从左侧提取字符
RIGHT 从右侧提取字符
MID 从中间提取字符
FIND 查找文本位置
SUBSTITUTE 替换文本

工作流:

  1. 生成 — python3 tools/visualize_function.py {program} {slug} {example_num}
  2. 上传 — python3 tools/ftp_upload.py -f {file} -r wp-content/uploads/function-viz/{program}/ --mkdir
  3. 更新 JSON — 在 example 中添加 "image_url": "https://..."
  4. 发布 — python3 tools/smart_publish.py --slugs {slug} --program {program} --allow

自定义可视化(嵌套函数): 对于复杂公式,例如 =LEFT(A1, FIND(" ", A1)-1),需要单独编写脚本,示例见 media/function-viz/excel/left-5-custom.py。注意:主脚本仅支持包含字符串字面量的简单公式。

使用方式

  1. 选择工具 — 静态图用 Matplotlib,动画用 Manim。
  2. 运行脚本 — python3 scripts/physics_fbd.py 或 manim -pql ...
  3. 查看输出 — explorer.exe output.png 或使用图片查看器。

提示:查看器可使用 run_in_background=true,避免阻塞对话。

适用场景

  • 物理教学中的受力分析、向量、运动学演示。
  • 数学函数绘图、单位圆、坐标平面与向量。
  • 算法或流程的流程图绘制。
  • 需要动态演示的 STEM 概念动画。
  • Excel/DAX/Power Query 函数用法的可视化说明。

限制

  • 函数解释可视化的主脚本仅支持包含字符串字面量的简单公式,嵌套函数需自行编写脚本。
  • 其他限制暂未提供。

相关技能

  • /explain-concepts — 可视化正在讲解的概念
  • /thepexcel-brand-guidelines — 品牌主题可视化
  • /pptx — 将可视化嵌入演示文稿