from ipywidgets import interact
import ipywidgets as widgets
import pandas as pd
我有一个数据框如下:
df = pd.DataFrame(index = [1,2,3],
data = {'col1':[2,3,5],"col2":[2,5,2], "col3":[2,4,3]})
此外,我还有一个函数
df_plot
可以绘制线图。通过数字参数我选择要绘制的列。
def df_plot(df, num):
df.iloc[:,num].plot()
尝试创建另一个函数
f_interact
,它显示下拉列表,我可以在其中选择要绘制的列。
df_plot
用于 f_interact
def f_interact():
widgets.interact(df_plot, num=[0,1,2])
我收到以下错误
我很可能没有正确构建设置(函数和参数)。 我查看了 ipywidgets 文档,但找不到合适的示例。 有人可以建议吗。
你把事情搞得太复杂了。喻不需要第二个功能。改为这样做:
from ipywidgets import interact
import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame(index=[1, 2, 3],
data={'col1': [2, 3, 5], "col2": [2, 5, 2], "col3": [2, 4, 3]})
def df_plot(num):
plt.figure()
df.iloc[:, num].plot(kind='line', title=f"Column {num + 1}")
plt.show()
interact(df_plot, num=(0, len(df.columns) - 1))
这给出了