Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x python脚本中的Matplotlib交互式小部件_Python 3.x_Matplotlib Widget - Fatal编程技术网

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