Python 3.x python脚本中的Matplotlib交互式小部件
我正在适应使用Python 3.x python脚本中的Matplotlib交互式小部件,python-3.x,matplotlib-widget,Python 3.x,Matplotlib Widget,我正在适应使用matplotlib的小部件与绘图交互。 我通常的工作方式是交互式的,从spyder中,我只调用一个函数进行绘图。 我的目标是使未安装Python的用户可以使用可执行文件,因此作为中间步骤,我将函数包装到脚本中。 我对独立脚本的使用经验很少,因此简而言之,我的脚本如下所示: import various_modules def plotting() ... plot_some_initial_stuff sl = Slider() plt.show(
matplotlib
的小部件与绘图交互。
我通常的工作方式是交互式的,从spyder
中,我只调用一个函数进行绘图。
我的目标是使未安装Python
的用户可以使用可执行文件,因此作为中间步骤,我将函数包装到脚本中。
我对独立脚本的使用经验很少,因此简而言之,我的脚本如下所示:
import various_modules
def plotting()
...
plot_some_initial_stuff
sl = Slider()
plt.show() <-------
def update()
...
ax.set_ydata()
fig.canvas.draw_idle()
sl.on_change(update)
return()
plotting()
不会生产任何东西。通过添加plt.show()
,窗口将显示我在初始化部分定义的图形。但是,没有交互作用发生
在像我这样运行脚本时,实现交互的正确方法是什么?虽然我不知道所有细节,但我了解到:
- 脚本的默认模式是
- 这意味着
- 在调用
之前,不会生成绘图show()
- 语句之后,脚本的执行不会继续
- 在调用
show()
的调用太早,实际上阻止了update
函数的定义及其与滑块的连接
将show()
移动到函数定义的最后一行就足够了,以获得所需的行为。虽然我不知道所有细节,但我了解到:
- 脚本的默认模式是
- 这意味着
- 在调用
show()
之前,不会生成绘图
- 语句之后,脚本的执行不会继续
因此,我对show()
的调用太早,实际上阻止了update
函数的定义及其与滑块的连接
将show()
移动到函数定义的最后一行就足够了,以获得所需的行为
python my_plot.py