交互组件
WidgetViewer 会在笔记本保存格中绘制 econ-viz 图形,只要控制项一变动就重新绘制。每个参数都同时有滑块和数字输入框,用户可以拖动培养直觉,也可以输入精确数值,方便教学与演示。
安装
如果也要导出 GIF:
基本用法
from econ_viz import Canvas, levels, solve
from econ_viz.interactive import WidgetViewer
from econ_viz.models import CobbDouglas
def draw(alpha: float, px: float) -> Canvas:
model = CobbDouglas(alpha=alpha, beta=1.0 - alpha)
eq = solve(model, px=px, py=2.0, income=20.0)
return (
Canvas(
x_max=14, y_max=12,
x_label="X_1", y_label="X_2",
title="Interactive equilibrium"
)
.add_utility(model, levels=levels.around(eq.utility, n=5))
.add_budget(px=px, py=2.0, income=20.0, fill=True)
.add_equilibrium(eq, show_ray=True, drop_dashes=True)
)
WidgetViewer(
draw,
alpha=(0.2, 0.8, 0.05),
px=(1.0, 6.0, 0.25),
).show()
组件行为
交互组件会自动处理以下行为:
- 为每个参数创建一个
FloatSlider。 - 为每个参数创建一个联动的
FloatText输入框。 - 让滑块与输入的数值保持同步。
- 重新绘制前会先清掉旧图,笔记本保存格里不会堆积一堆过时的图。
笔记本设置
在全新的笔记本运行环境中,尤其是 Colab:
- 先运行一次安装保存格。
- 如果
ipywidgets、traitlets或IPython被升级了,重新启动一次运行环境。 - 重新启动后跳过安装保存格,从 import 保存格继续运行。
随包附带的 Playground 笔记本已经照这个流程设计,若环境中已经装好 econ-viz,就不会重新安装。
组件或 GIF
根据教学场景选择合适的呈现方式:
- 学生需要输入或拖动参数、一次检查一个状态时,用
WidgetViewer。 - 想在演示文稿、文文件或项目网站中呈现固定、可重复播放的变动过程时,用
Animator。