交互式小工具
@相互作用 创建可配置的小部件。 ipyμvue 可用于在Python中编写与 SageMath公司 . matplotlib图可以进行交互。
示例:交互式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 克 . 马特普洛特利布 ( 图形 = 图形 )