matplotlib 3.5.1

>>> """
==============
Legend Picking
==============

Enable picking on the legend to toggle the original line on and off
"""
... 
... import numpy as np
... import matplotlib.pyplot as plt
... 
... 
... t = np.linspace(0, 1)
... y1 = 2 * np.sin(2*np.pi*t)
... y2 = 4 * np.sin(2*np.pi*2*t)
... 
... fig, ax = plt.subplots()
... ax.set_title('Click on legend line to toggle line on/off')
... line1, = ax.plot(t, y1, lw=2, label='1 Hz')
... line2, = ax.plot(t, y2, lw=2, label='2 Hz')
... leg = ax.legend(fancybox=True, shadow=True)
... 
... lines = [line1, line2]
... lined = {} # Will map legend lines to original lines.
... for legline, origline in zip(leg.get_lines(), lines):
...  legline.set_picker(True) # Enable picking on the legend line.
...  lined[legline] = origline
... 
... 
... def on_pick(event):
...  # On the pick event, find the original line corresponding to the legend
...  # proxy line, and toggle its visibility.
...  legline = event.artist
...  origline = lined[legline]
...  visible = not origline.get_visible()
...  origline.set_visible(visible)
...  # Change the alpha on the line in the legend so we can see what lines
...  # have been toggled.
...  legline.set_alpha(1.0 if visible else 0.2)
...  fig.canvas.draw()
... 
... fig.canvas.mpl_connect('pick_event', on_pick)
... plt.show()
...