Open In App

Matplotlib – Radio Buttons

Last Updated : 03 Jul, 2021
Improve
Improve
Like Article
Like
Save
Share
Report

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:



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads