使用%matplotlib笔记本
您可以使用笔记本电脑后端而不是嵌入式后端.这将允许按预期方式通过将代码作为脚本运行来调用fig.canvas.draw().将行%matplotlib内联替换为
%matplotlib notebook
并重新启动内核.
使用显示器
更改后,您可以显示新更改的图形.缺点是它将创建两次输出.一种解决方法是将交互放入新的单元格中并捕获第一个单元格的输出.
%%capture
%matplotlib inline
from ipywidgets import interact, widgets
from IPython.display import display
import matplotlib.pyplot as plt
import warnings
from skimage.morphology import disk
from skimage.filters import rank
from skimage.color import rgb2gray
import skimage.data
def f(Median_Size):
selem = disk(int(Median_Size))
with warnings.catch_warnings():
warnings.simplefilter("ignore")
img_median = rank.median(img_gray, selem=selem)
ax_neu.imshow(img_median, cmap="gray")
fig.canvas.draw()
display(fig)
image = skimage.data.camera() #plt.imread("Test.png")
img_gray = rgb2gray(image)
fig = plt.figure(figsize=(6, 4))
ax_orig = fig.add_subplot(121)
ax_neu = fig.add_subplot(122)
ax_orig.imshow(img_gray, cmap="gray")
ax_neu.imshow(img_gray, cmap="gray")
在一个新的单元格中
interact(f, Median_Size=widgets.IntSlider(min=1,max=21,step=2,value=1));
输出将如下所示: