抑制 interact() 小部件的输出
Suppress output from an interact() widget
我正在使用一个小部件来参数化某些数据的生成。我想捕获数据,而不输出它。这可能吗?在 interact()
之后添加 ;
不起作用。示例:
import ipywidgets as widgets
from ipywidgets import interact, interactive, fixed
def generate_data(n, p, s):
return np.random.negative_binomial(n, p, s)
w_n = widgets.IntSlider(min=1, max=10000, step=1)
w_p = widgets.FloatSlider(min=0.01, max=1, step = 0.01)
w_s = widgets.IntSlider(min=500,max=10000,step=50)
data = interact(generate_data, n = w_n, p = w_p, s = w_s);
您可以修改全局变量,而不是在 generate_data()
中返回值。它避免打印输出,您可以稍后在代码中使用 val
。
import ipywidgets as widgets
from ipywidgets import interact, interactive, fixed
import numpy as np
val = None
def generate_data(n, p, s):
global val
val = np.random.negative_binomial(n, p, s)
w_n = widgets.IntSlider(min=1, max=10000, step=1)
w_p = widgets.FloatSlider(min=0.01, max=1, step = 0.01)
w_s = widgets.IntSlider(min=500,max=10000,step=50)
interact(generate_data, n = w_n, p = w_p, s = w_s)
我已向 ipywidgets 提交了解决此问题的拉取请求:
https://github.com/ipython/ipywidgets/pull/712
改动其实很简单。使用此版本,您只需将一个额外的 kwarg 传递给 interact
:
data = interact(generate_data, n = w_n, p = w_p, s = w_s,
__output_result=False)
我正在使用一个小部件来参数化某些数据的生成。我想捕获数据,而不输出它。这可能吗?在 interact()
之后添加 ;
不起作用。示例:
import ipywidgets as widgets
from ipywidgets import interact, interactive, fixed
def generate_data(n, p, s):
return np.random.negative_binomial(n, p, s)
w_n = widgets.IntSlider(min=1, max=10000, step=1)
w_p = widgets.FloatSlider(min=0.01, max=1, step = 0.01)
w_s = widgets.IntSlider(min=500,max=10000,step=50)
data = interact(generate_data, n = w_n, p = w_p, s = w_s);
您可以修改全局变量,而不是在 generate_data()
中返回值。它避免打印输出,您可以稍后在代码中使用 val
。
import ipywidgets as widgets
from ipywidgets import interact, interactive, fixed
import numpy as np
val = None
def generate_data(n, p, s):
global val
val = np.random.negative_binomial(n, p, s)
w_n = widgets.IntSlider(min=1, max=10000, step=1)
w_p = widgets.FloatSlider(min=0.01, max=1, step = 0.01)
w_s = widgets.IntSlider(min=500,max=10000,step=50)
interact(generate_data, n = w_n, p = w_p, s = w_s)
我已向 ipywidgets 提交了解决此问题的拉取请求:
https://github.com/ipython/ipywidgets/pull/712
改动其实很简单。使用此版本,您只需将一个额外的 kwarg 传递给 interact
:
data = interact(generate_data, n = w_n, p = w_p, s = w_s,
__output_result=False)