title: Plotly python: Multiple item selection interactive plot
body: <p>I want to be able to select multiple items instead of only one or all. So far I am only able to select one item and display its graph, or select 'all'
  and display all the graphs.</p>
  <p>I want to be able to select 2 or more items and have their plot be displayed in a single graph shown below.</p>
  <p>I am new to plotly so any help is very much appreciated. Thank you so much :)</p>
  <p><a href="https://i.stack.imgur.com/Xj44M.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/Xj44M.png" alt="enter image description here" /></a></p>
  <p>My code:</p>
  <pre><code>def interactive_multi_plot(actual, forecast_1, forecast_2, title, addAll = True):
  fig = go.Figure()
      
  
  for column in forecast_1.columns.to_list():
      fig.add_trace(
          go.Scatter(
              x = forecast_1.index,
              y = forecast_1[column],
              name = &quot;Forecast_SI&quot;
          )
  
      )
  
      
      button_all = dict(label = 'All',
                    method = 'update',
                    args = [{'visible': forecast_1.columns.isin(forecast_1.columns),
                             'title': 'All',
                             'showlegend':True}])
      
  for column in forecast_2.columns.to_list():
      fig.add_trace(
          go.Scatter(
              x = forecast_2.index,
              y = forecast_2[column],
              name = &quot;Forecast_LSTM&quot; 
          )
  
      )
  
      
      button_all = dict(label = 'All',
                    method = 'update',
                    args = [{'visible': forecast_2.columns.isin(forecast_2.columns),
                             'title': 'All',
                             'showlegend':True}])
  for column in actual.columns.to_list():
      fig.add_trace(
          go.Scatter(
              x = actual.index,
              y = actual[column],
              name = &quot;True values&quot; 
          )
  
      )
  
      
      button_all = dict(label = 'All',
                    method = 'update',
                    args = [{'visible': actual.columns.isin(actual.columns),
                             'title': 'All',
                             'showlegend':True}])
      
  fig.layout.plot_bgcolor = '#010028'
  fig.layout.paper_bgcolor = '#010028'
  def create_layout_button(column):
      return dict(label = column,
                  method = 'update',
                  args = [{'visible': actual.columns.isin([column]),
                           'title': column,
                           'showlegend': True}])
  fig.update_layout(
      updatemenus=[go.layout.Updatemenu(
          active = 0,
          buttons = ([button_all] * addAll) +  list(actual.columns.map(lambda column: create_layout_button(column)))
          )
      ]     
  )
  # Update remaining layout properties
  fig.update_layout(
      title_text=title,
      height=800,
      font = dict(color='#fff', size=12)
  )
  
  
  fig.show()
  </code></pre>