Python 使用按钮在带有参数化类的面板中触发操作,当按钮操作完成时,更新另一个依赖项(Holoviz)
我正在使用参数化类构建一个带有面板Holoviz的仪表板 在本课程中,我想要一个按钮,当按下该按钮开始训练模型时,当模型完成训练时,它需要显示基于该模型的图形Python 使用按钮在带有参数化类的面板中触发操作,当按钮操作完成时,更新另一个依赖项(Holoviz),python,pyviz,holoviz,panel-pyviz,Python,Pyviz,Holoviz,Panel Pyviz,我正在使用参数化类构建一个带有面板Holoviz的仪表板 在本课程中,我想要一个按钮,当按下该按钮开始训练模型时,当模型完成训练时,它需要显示基于该模型的图形 如何使用类在面板中构建此类依赖关系?下面的示例显示了当按下按钮时,它如何触发“button”,从而触发方法train_model(),完成后,触发方法update_graph() 关键在于lambda x:x.param.trigger('button')和@param.depends('button',watch=True): impo
如何使用类在面板中构建此类依赖关系?下面的示例显示了当按下按钮时,它如何触发“button”,从而触发方法train_model(),完成后,触发方法update_graph()
关键在于lambda x:x.param.trigger('button')和@param.depends('button',watch=True):
import numpy as np
import pandas as pd
import holoviews as hv
import param
import panel as pn
hv.extension('bokeh')
class ActionExample(param.Parameterized):
# create a button that when pushed triggers 'button'
button = param.Action(lambda x: x.param.trigger('button'), label='Start training model!')
model_trained = None
# method keeps on watching whether button is triggered
@param.depends('button', watch=True)
def train_model(self):
self.model_df = pd.DataFrame(np.random.normal(size=[50, 2]), columns=['col1', 'col2'])
self.model_trained = True
# method is watching whether model_trained is updated
@param.depends('model_trained', watch=True)
def update_graph(self):
if self.model_trained:
return hv.Points(self.model_df)
else:
return "Model not trained yet"
action_example = ActionExample()
pn.Row(action_example.param, action_example.update_graph)
有关操作按钮的有用文档:动作参数的其他有用示例:
按下按钮前:
按下按钮后: