Radio buttons let the user choose only one option between multiple options. These buttons are arranged in groups of two or more with a list of circular dots. For the radio buttons to remain responsive you must keep a reference to this object. We connect the RadioButtons with the on_clicked method to make it responsive.
Syntax:
matplotlib.widgets.RadioButtons(ax, labels, active=0, activecolor=’blue’)
Parameters:
- ax: The axes to which the radio buttons add.
- labels: button labels(list of str).
- active: Index of the initially selected button.
- activecolor: Color of the selected button.
Below are various examples that depict how to create and use radio buttons using matplotlib library.
Example 1:
Python3
# import required modules as numpy, # matplotlib and radiobutton widget import numpy as np import matplotlib.pyplot as plt from matplotlib.widgets import RadioButtons # x and y-coordinates for graph creation x = np.linspace( 0 , 2 * np.pi, 200 ) y = np.cos(x * * 2 ) # Creating subplot and adjusting subplot fig, ax = plt.subplots() l, = ax.plot(x, y, color = 'yellow' ) plt.subplots_adjust(left = 0.4 ) ax.set_title( 'Plot with RadioButtons' , fontsize = 18 ) # sub-plot for radio button with # left, bottom, width, height values rax = plt.axes([ 0.1 , 0.15 , 0.2 , 0.2 ]) radio_button = RadioButtons(rax, ( 'yellow' , 'red' , 'blue' , 'green' )) # function performed on switching the # radiobuttons def colorfunc(label): l.set_color(label) plt.draw() radio_button.on_clicked(colorfunc) plt.show() |
Output:
Example 2:
Python3
import numpy as np import matplotlib.pyplot as plt from matplotlib.widgets import RadioButtons # plotting between the interval -π and π x = np.linspace( - np.pi, np.pi) # trigonometric functions to plot p = 2 * np.sin(x) q = np.sin(x) r = np.cos(x) s = 2 * np.cos(x) fig, ax = plt.subplots() l, = ax.plot(x, p, lw = 3 , color = 'green' ) plt.subplots_adjust(left = 0.3 ) rax = plt.axes([ 0.05 , 0.7 , 0.15 , 0.2 ]) radio = RadioButtons(rax, ( '2sin(x)' , 'sin(x)' , 'cos(x)' , '2cos(x)' )) # function performed on clicking the radio buttons def sinefunc(label): sindict = { '2sin(x)' : p, 'sin(x)' : q, 'cos(x)' : r, '2cos(x)' : s} data = sindict[label] l.set_ydata(data) plt.draw() radio.on_clicked(sinefunc) # plot grid ax.grid() plt.show() |
Output:
Example 3:
Python3
import numpy as np import matplotlib.pyplot as plt from matplotlib.widgets import RadioButtons # plotting between the interval -π and π x = np.linspace( - np.pi, np.pi) # trigonometric functions to plot p = 2 * np.sin(x) q = np.sin(x) r = np.cos(x) s = 2 * np.cos(x) fig, ax = plt.subplots() l, = ax.plot(x, p, lw = 3 , color = 'red' ) plt.subplots_adjust(left = 0.3 ) rax = plt.axes([ 0.05 , 0.7 , 0.15 , 0.2 ]) radio = RadioButtons(rax, ( '2sin(x)' , 'sin(x)' , 'cos(x)' , '2cos(x)' )) # function performed on clicking the radio buttons def sinefunc(label): sindict = { '2sin(x)' : p, 'sin(x)' : q, 'cos(x)' : r, '2cos(x)' : s} data = sindict[label] l.set_ydata(data) plt.draw() radio.on_clicked(sinefunc) # plot grid ax.grid() # x and y-coordinates for graph creation x = np.linspace( 0 , 2 * np.pi, 200 ) y = np.cos(x * * 2 ) # sub-plot for radio button with # left, bottom, width, height values rax2 = plt.axes([ 0.05 , 0.15 , 0.15 , 0.2 ]) radio_button = RadioButtons(rax2, ( 'red' , 'blue' , 'green' )) # function performed on switching radiobuttons def colorfunc(label2): l.set_color(label2) plt.draw() radio_button.on_clicked(colorfunc) plt.show() |
Output: