【发布时间】:2018-01-21 10:53:33
【问题描述】:
我正在尝试从ipywidgets.Button 实例创建一个按钮,一旦按下它就会保存一个特定的数字。但是,一旦按下按钮,使用以下 Ipython 笔记本会节省多个文件:
import numpy as np
from ipywidgets import interact, interactive,FloatSlider,IntSlider,Button
from IPython.display import display
import matplotlib.pylab as plt
%matplotlib inline
button = Button(description="Savefig")
display(button)
def plotfields(p,a):
fig,ax = plt.subplots(1,2,figsize=(4*2,4),sharey=True)
X,Y=np.meshgrid(np.linspace(0,100,100),np.linspace(0,100,100))
b1 = np.sin(p*X)*np.cos(a*Y)
b2 = np.sin(a*X)*np.cos(p*Y)
ax[0].imshow(b1,aspect='auto')
ax[1].imshow(b2,aspect='auto')
ax[0].set_ylabel(r'$t$')
ax[0].set_xlabel(r'$x$')
ax[1].set_xlabel(r'$x$')
plt.tight_layout()
def on_button_clicked(b):
fig.savefig("test_p{:.3s}_a{:.3s}.eps".format(str(int(100*p)),str(int(100*a))))
fig.savefig("test_p{:.3s}_a{:.3s}.png".format(str(int(100*p)),str(int(100*a))))
button.on_click(on_button_clicked)
p_w = FloatSlider(min=0.01, max=1, step=0.01, value=0.01)
a_w = FloatSlider(min=0.01, max=1, step=0.01, value=0.01)
interact(plotfields,p=p_w,a=a_w)
【问题讨论】:
标签: python matplotlib jupyter-notebook ipywidgets