python - 使用按钮在具有参数化类的面板中触发操作,当按钮操作完成时更新另一个依赖项 (Holoviz)

标签 python pyviz holoviz panel-pyviz

我正在使用参数化类使用 Panel Holoviz 构建仪表板。

在本类(class)中,我想要一个按钮,按下该按钮即可开始训练模型,当模型完成训练时,它需要显示基于该模型的图表。

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

最佳答案

下面的示例显示了按下按钮时如何触发“按钮”,从而触发方法 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

按下按钮之前: button not pushed yet no graph shown


按下按钮后: button triggers method and dependent method

关于python - 使用按钮在具有参数化类的面板中触发操作,当按钮操作完成时更新另一个依赖项 (Holoviz),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57970603/

相关文章:

python - 无法使用Python通过Alpha-vantage获取实时日期

python - Flask-mysqldb数据库游标

python - Holoviews散点图的回归线?

python - 如何处理 PyViz/datashader 网络示例中的节点点击?

python - 在 Flask 中嵌入 Panel 应用程序 - 图在小部件更改时不更新

python - 来自另一个Spider的Scrapy导入方法

作为 float 的字符串的 Python int()

holoviews - 从 Datashader 绘图中选择数据

python - 如何让我的交互式 Holoviews 图形显示在 Visual Studio 中(没有 Jupyter)?

python - 将一个特定的数据点标记添加到箱线图或 fiddle 图中(使用 holoviews/hvplot)