code: def run(self):
      df = pd.read_csv(
          "https://raw.githubusercontent.com/plotly/datasets/master/gapminderDataFiveYear.csv"
      )
      self.df = Payload(df)
  
      dash_app = Dash(__name__)
  
      dash_app.layout = html.Div(
          [
              dcc.Graph(id="graph-with-slider"),
              dcc.Slider(
                  df["year"].min(),
                  df["year"].max(),
                  step=None,
                  value=df["year"].min(),
                  marks={
                      str(year): str(year)
                      for year in df["year"].unique()
                  },
                  id="year-slider",
              ),
          ]
      )
  
      @dash_app.callback(
          Output("graph-with-slider", "figure"),
          Input("year-slider", "value"),
      )
      def update_figure(selected_year):
          self.selected_year = selected_year
          filtered_df = df[df.year == selected_year]
  
          fig = px.scatter(
              filtered_df,
              x="gdpPercap",
              y="lifeExp",
              size="pop",
              color="continent",
              hover_name="country",
              log_x=True,
              size_max=55,
          )
  
          fig.update_layout(transition_duration=500)
  
          return fig
  
      dash_app.run_server(host=self.host, port=self.port)
  
file_path: pytorch-lightning/docs/source-app/workflows/add_web_ui/dash/intermediate_plot.py
imports: from typing import Optional
  import pandas
  import plotly.express
  from dash import Dash, dcc, html, Input, Output
  from lightning.app import LightningWork, LightningFlow, LightningApp
  from lightning.app.storage import Payload
label_desc: Use image node_id 2 for calling the LitDash obj's underlying member method code with example usage: obj.run() and returns: fig