1

我正在尝试构建一个简单的小部件应用程序。它在 Jupyter 笔记本中运行良好,但是当我将它部署为一个应用程序时,每次更改滑块时,整个页面都会刷新。

这是我的代码:

from bqplot import Figure
from bqplot import pyplot as plt
import numpy as np
import ipywidgets as widgets

def scatter_plot(n):
    fig = plt.figure()
    x = np.random.uniform(-1,1,n)
    y = np.random.uniform(-1,1,n)
    scatter = plt.scatter(x,y,default_size=10)
    plt.show()
slider = widgets.IntSlider(min=0,max=1000,value=10)
widgets.interact(scatter_plot, n=slider)

该代码应该在网格中显示一些随机点,并且滑块会更改点数。再次,代码有效,但我唯一的问题是当我更改滑块时它会不断刷新(当它是一个瞧应用程序时)。

4

1 回答 1

1

每次滑块值更改时,您都在重新创建图形。如果您只更改散点标记中的 x 和 y 值,那么这会更平滑。此外,如果您将滑块中的步进增量更改为 10,则它会使其更具响应性。

from bqplot import Figure
from bqplot import pyplot as plt
import numpy as np
import ipywidgets as widgets

fig = plt.figure()
n = 10
x = np.random.uniform(-1,1,n)
y = np.random.uniform(-1,1,n)
scatter = plt.scatter(x,y,default_size=10)
    
def scatter_plot(n):
    scatter.x = np.random.uniform(-1,1,n)
    scatter.y = np.random.uniform(-1,1,n)
    
# plt.show()
slider = widgets.IntSlider(min=0,max=1000,value=10, step = 1)
widgets.interact(scatter_plot, n=slider)
fig
于 2021-12-09T08:17:01.693 回答