1

我正在使用 Parameterized Class 使用 Panel Holoviz 构建仪表板。

在这堂课中,我想要一个按钮,当按下开始训练模型时,当模型完成训练时,它需要显示基于该模型的图表。

如何使用类在 Panel 中构建此类依赖项?

4

1 回答 1

2

下面的例子展示了当按钮被按下时,它如何触发'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)

有关操作按钮的有用文档:
https ://panel.pyviz.org/gallery/param/action_button.html#gallery-action-button

其他有用的操作参数示例:
https ://github.com/pyviz/panel/issues/239

按下按钮前: 按下按钮后:按钮尚未按下尚未显示图表


按钮触发方法和依赖方法

于 2019-09-17T08:48:54.373 回答