title: Enabling Multi-Select in ipython-widgets
body: <p>I have a development problem. I need to be able to select multiple items at the same time from a drop-down menu in python using ipython-widgets. So far, I have been able to choose an option a single-option widget menu, which upon selection will plot its corresponding statistics. I have pasted my code below, and I would greatly appreciate it if you could help me out.</p>
  <pre><code>import numpy as np
  import pandas as pd
  import ipywidgets as widgets
  import matplotlib.pyplot as plt
  import panel as pn
  pn.extension()
  
  
  classes= widgets.Dropdown(
  description='Products:',
  options= list(output_table.class_m.unique())
  )
  
  
  start_year = widgets.BoundedFloatText(
      value=output_table.year.min(),
      min=output_table.year.min(),
      max=output_table.year.max(),
      step=1,
      description='Start Year:',
      disabled=False,
      color='black'
  )
  end_year = widgets.BoundedFloatText(
      value=output_table.year.max(),
      min=output_table.year.min(),
      max=output_table.year.max(),
      step=1,
      description='End Year:',
      disabled=False,
      color='black'
  )
  
  
  output=widgets.Output()
  
  def response(name, start, end):
      name = classes.value
      output.clear_output()
      df2 = output_table.copy()
     # Filter between min and max years (inclusive)
      df2 = df2[(df2.year &gt;= start) &amp; (df2.year &lt;= end)]
      with output:
          if len(df2) &gt; 0:
              plot1 = df2[df2['class_m'] == name].groupby(['month']).agg({'units':'sum'}).reset_index()
              plot1.plot(x='month', y='units')
              clear_output(wait=True)
              plt.show()
          else:
              print(&quot;No data to show for current selection&quot;)
  def event_handler(change):
      response(change.new, start_year.value, end_year.value)
  
  def start_year_handler(change):
      response(classes.value, change.new, end_year.value)
  
  def end_year_handler(change):
      response(classes.value, start_year.value, change.new)
  
  classes.observe(event_handler, names='value')
  start_year.observe(start_year_handler, names = 'value')
  end_year.observe(end_year_handler, names = 'value')
  
  display(classes)
  display(start_year)
  display(end_year)
  </code></pre>