我正在调整this example以使用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()
命令,当我从IPython
shell工作时我不需要这样做,否则这样做:
python my_plot.py
不会产生任何东西。通过添加plt.show()
,窗口显示我在初始化部分中定义的图形。但是,没有互动发生。
运行像我正在做的脚本时,实现交互的正确方法是什么?
答案 0 :(得分:0)
虽然我不知道所有细节,但我了解到:
Dim com As SqlCommand = New SqlCommand("select Date,Title,Content from Log where Author = @Author", con)
com.Parameters.Add("@Author", SqlDbType.Char)
com.Parameters("@Author").Value = User.Identity.Name
Dim dt As DataTable = New DataTable()
For Each Datarow In dt.Rows
//create New div with its content
Next
因此,我对show()
的调用过早,实际上阻止了show()
函数的定义及其与update
事件的关联。
将slider.on_change()
移动到函数定义的最后一行就足以获得所需的行为。