1"""
2=============
3Radio Buttons
4=============
5
6Using radio buttons to choose properties of your plot.
7
8Radio buttons let you choose between multiple options in a visualization.
9In this case, the buttons let the user choose one of the three different sine
10waves to be shown in the plot.
11"""
12import numpy as np
13import matplotlib.pyplot as plt
14from matplotlib.widgets import RadioButtons
15
16t = np.arange(0.0, 2.0, 0.01)
17s0 = np.sin(2*np.pi*t)
18s1 = np.sin(4*np.pi*t)
19s2 = np.sin(8*np.pi*t)
20
21fig, ax = plt.subplots()
22l, = ax.plot(t, s0, lw=2, color='red')
23plt.subplots_adjust(left=0.3)
24
25axcolor = 'lightgoldenrodyellow'
26rax = plt.axes([0.05, 0.7, 0.15, 0.15], facecolor=axcolor)
27radio = RadioButtons(rax, ('2 Hz', '4 Hz', '8 Hz'))
28
29
30def hzfunc(label):
31    hzdict = {'2 Hz': s0, '4 Hz': s1, '8 Hz': s2}
32    ydata = hzdict[label]
33    l.set_ydata(ydata)
34    plt.draw()
35radio.on_clicked(hzfunc)
36
37rax = plt.axes([0.05, 0.4, 0.15, 0.15], facecolor=axcolor)
38radio2 = RadioButtons(rax, ('red', 'blue', 'green'))
39
40
41def colorfunc(label):
42    l.set_color(label)
43    plt.draw()
44radio2.on_clicked(colorfunc)
45
46rax = plt.axes([0.05, 0.1, 0.15, 0.15], facecolor=axcolor)
47radio3 = RadioButtons(rax, ('-', '--', '-.', 'steps', ':'))
48
49
50def stylefunc(label):
51    l.set_linestyle(label)
52    plt.draw()
53radio3.on_clicked(stylefunc)
54
55plt.show()
56