问题描述
我想使用小部件进行绘图并与其他文件进行交互。问题在于,我只有一个小部件可以告诉您要绘制的文件,而其他小部件则可以选择图形的选项。我将通过一个简单的示例展示我的工作:
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import ipywidgets as widgets
from IPython.display import display,Math
omega = widgets.FloatSlider(
value=1,min=1,max=5.0,step=0.1,description='omega:',disabled=False,continuous_update=False,orientation='horizontal',readout=True,readout_format='.1f',)
delta = widgets.FloatSlider(
value=0,min=0,max=1.0,description='delta:',)
A = widgets.FloatSlider(
value=1,step=0.5,description='A:',)
y = A.value*np.sin(omega.value*x+delta.value)
print(len(x),len(y))
xlabel = widgets.Text(value='',description='xlabel',continuous_update=False)
ylabel = widgets.Text(value='',description='ylabel',continuous_update=False)
#@widgets.interact(xlabel=xlabel,ylabel=ylabel,x,y)
def plot_data(y,xlabel,ylabel):
#Plot data rode before
x = np.linspace(0,2*np.pi,num=1000)
plt.clf()
plt.figure()
plt.xlabel(xlabel)
plt.ylabel(ylabel)
plt.plot(x,y)
#@widgets.interact(A=A,omega=omega,delta=delta)
def load_data(A,omega,delta):
#Read data to plot later
x = np.linspace(0,num=1000)
y = A*np.sin(omega*x+delta)
#f2(x,y,xlabel.value,ylabel.value)
return y
omega.observe(load_data,'value')
A.observe(load_data,'value')
delta.observe(load_data,'value')
display(omega)
display(A)
display(delta)
widgets.interact(plot_data,y=widgets.fixed(load_data(A.value,omega.value,delta.value)),xlabel=xlabel,ylabel=ylabel)
现在出现错误TypeError: load_data() missing 2 required positional arguments: 'omega' and 'delta'
有什么想法可以解决并使其可行吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)