Skip to content
Related Articles

Related Articles

Improve Article
Matplotlib – Radio Buttons
  • Last Updated : 05 Apr, 2021

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)
  
# trignometric 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)
  
# trignometric 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:

 Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.  

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course. And to begin with your Machine Learning Journey, join the Machine Learning – Basic Level Course




My Personal Notes arrow_drop_up
Recommended Articles
Page :