code: def slider():
      x = np.linspace(0, 10, 100)
      y = np.sin(x)
  
      source = ColumnDataSource(data=dict(x=x, y=y))
  
      plot = figure(
          y_range=(-10, 10),
          tools="",
          toolbar_location=None,
          title="Sliders example",
      )
      plot.line("x", "y", source=source, line_width=3, line_alpha=0.6)
  
      amp = Slider(
          start=0.1, end=10, value=1, step=0.1, title="Amplitude"
      )
      freq = Slider(
          start=0.1, end=10, value=1, step=0.1, title="Frequency"
      )
      phase = Slider(start=0, end=6.4, value=0, step=0.1, title="Phase")
      offset = Slider(
          start=-5, end=5, value=0, step=0.1, title="Offset"
      )
  
      callback = CustomJS(
          args=dict(
              source=source,
              amp=amp,
              freq=freq,
              phase=phase,
              offset=offset,
          ),
          code="""
          const A = amp.value
          const k = freq.value
          const phi = phase.value
          const B = offset.value
  
          const x = source.data.x
          const y = Array.from(x, (x) => B + A*Math.sin(k*x+phi))
          source.data = {x, y}
      """,
      )
  
      amp.js_on_change("value", callback)
      freq.js_on_change("value", callback)
      phase.js_on_change("value", callback)
      offset.js_on_change("value", callback)
  
      widgets = column(
          amp, freq, phase, offset, sizing_mode="stretch_width"
      )
  
      return [widgets, plot]
  
imports: import numpy
  from bokeh.layouts import column, grid
  from bokeh.models import ColumnDataSource, CustomJS, Slider
  from bokeh.plotting import figure, show
label_desc: Use image node_id 2 for calling a global function with example usage: slider() and returns: list