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:
Article Tags :