Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
holoviz
GitHub Repository: holoviz/panel
Path: blob/main/doc/how_to/custom_components/examples/plot_viewer.md
2012 views

Plot Viewer

import param import panel as pn from bokeh.sampledata.iris import flowers from panel.viewable import Viewer pn.extension(template='fast') import hvplot.pandas

This example demonstrates the use of a Viewer class to build a reactive app. It uses the iris dataset which is a standard example used to illustrate machine-learning and visualization techniques.

We will start by using the dataframe with these five features and then create a Selector parameter to develop menu options for different input features. Later we will define the core plotting function in a plot method and define the layout in the __panel__ method of the IrisDashboard class.

The plot method watches the X_variable and Y_variable using the param.depends decorator. The plot method plots the features selected for X_variable and Y_variable and colors them using the species column.

inputs = ['sepal_length', 'sepal_width', 'petal_length', 'petal_width'] class IrisDashboard(Viewer): X_variable = param.Selector(objects=inputs, default=inputs[0]) Y_variable = param.Selector(objects=inputs, default=inputs[1]) @param.depends('X_variable', 'Y_variable') def plot(self): return flowers.hvplot.scatter(x=self.X_variable, y=self.Y_variable, by='species').opts(height=600) def __panel__(self): return pn.Row( pn.Param(self, width=300, name="Plot Settings"), self.plot ) IrisDashboard(name='Iris_Dashboard').servable()