交互式小工具

目前,可视化SageMath公司大多不是交互式的。然而,有一些方法可以为Jupyter笔记本构建交互式小部件:

示例:交互式matplotlib图

1 #在Jupyter中启用交互式matplotlib输出。
2 %马特普洛特利布 nbagg足球俱乐部
 
4 #更好的方法是,sage-pip安装ipympl,然后
5 #%matplotlib ipympl
6 
7  动态绘图(圣人.情节.原始的.图形基本体):
8     第页"""
9 动态二维绘图,在拖动时会重新绘制。
10     
11 输入:
12     
13 -``create_plot``--为给定的``xmin``、`ymin``、` xmax``、'ymax``边界创建绘图的可调用函数。
14     
15 -``xmin``,``ymin``,` `xmax``,'`ymax``——2D绘图的初始边界。
16 
17 """
18     定义 __初始化__(自己,创建_地块,克敏=-1,x最大值=1,伊敏=-1,ymax公司=1,选项={}):
19         自己._创建_地块=创建_绘图
20         
21         自己._克敏=克敏
22         自己._x最大值=x最大值
23         自己._伊敏=伊敏
24         自己._ymax公司=ymax公司
25         
26         超级的().__初始化__(选项)
27         
28     定义 _渲染器打开子图(自己,子情节):
29         定义 重画(_=):
30             尝试:
31                 #重画前清除子图。否则,我们会堆积很多
32                 #绘制相同的图需要越来越多的时间。
33                 #请注意,这也将清除此子情节中的其他原语。
34                 子情节._儿童= []
35 
36                 xlim公司=子情节..获取限制()
37                 伊林=子情节..获取ylim()
38 
39                 进口 圣人.杂项.冗长的
40                 冗长的=圣人.杂项.冗长的.获取详细信息()
41                 #有关绘制函数中未定义值的静默警告。
42                 圣人.杂项.冗长的.设置详细信息(-1)
43                 尝试:
44                     #打印create_Plot()生成的所有对象。
45                     对于 对象 在里面 自己._创建_绘图(克敏=xlim公司[0],x最大值=xlim公司[1],伊敏=伊林[0],ymax公司=伊林[1])._对象:
46                         对象._渲染器打开子图(子情节)
47                 最后:
48                     圣人.杂项.冗长的.设置详细信息(冗长的)
49             除了 例外:
50                 #不幸的是,在matplotlib回调中没有简单的方法显示错误消息。
51                 #错误显示在启动Jupyter的终端中。
52                 子情节.清楚的()
53                 提升
54 
55         #拖动绘图时重新绘制。
56         子情节..回调.连接("ylim_已更改",重新绘制)
57         子情节..回调.连接("xlim_已更改",重画)
58         
59         #在初始边界中绘制绘图。
60         重画()
61      
62     定义 获取最大数据(自己):
63         第页"""
64 返回此绘图的初始边界以在此处聚焦相机。
65 """
66         返回 字典(克敏=自己._克敏,伊敏=自己._伊敏,x最大值=自己._x最大值,ymax公司=自己._ymax公司)
67 
68     定义 显示(自己):
69         第页"""
70 创建一个matplotlib图并显示此图。
71 """
72         =绘图()
73         .添加原语(自己)
74 
75         进口 马特普洛特利布.pyplot图 作为 平板电脑
76         图形=平板电脑.图形()
77         .马特普洛特利布(图形=图形)

1 #我们从原点绘制出无限射线。
2 定义 创建_绘图(*,克敏,伊敏,x最大值,ymax公司):
     定义 射线(x个):
4         如果 x个>0:
5             返回 x个+(x个)
6 
7     返回 情节(射线,阿尔法=.5,克敏=克敏,伊敏=伊敏,x最大值=x最大值,ymax公司=ymax公司)
8 
9 动态绘图(创建_绘图).显示()

1 #我们画一条抛物线
2 定义 创建_绘图(*,克敏,伊敏,x最大值,ymax公司):
     返回 情节(x个^2,阿尔法=.5,克敏=克敏,伊敏=伊敏,x最大值=x最大值,ymax公司=ymax公司,
4                #当我们放大很多时,自适应递归会减慢绘图速度,因此我们禁用
5                #它用于这个简单的函数。
6                自适应_递归=0)
7 
8 动态绘图(创建_地块).显示()

交互式(上次编辑时间:2022-08-23 18:33:47萨拉姆)