Open In App

Matplotlib – Checkbox Widget

Last Updated : 24 Feb, 2021
Improve
Improve
Like Article
Like
Save
Share
Report

In this article, We are going to see the use of these checkboxes in matplotlib plots to make our plot more interactive. Checkbox widget offers us the freedom to make our plot more interactive. By using checkboxes we can perform on-tick events which on ticking the checkbox will trigger some event.

We will use the interact() function in ipywidgets library, to create checkboxes. The interact function automatically creates user interface (UI) controls for exploring code and data interactively. It accepts two parameters; a custom function and a Boolean keyword argument using which it generates autogenerate UI controls for a checkbox.

Approach:

We will be plotting the graph of the exponential curve in a range of (0,5). For that, we’ve created a hundred points (x-values) in the range 0-5 and then generate its corresponding exponential value using the NumPy.exp() function. As discussed earlier, Now created a custom function named plot() which accepts the Boolean value passed in the interact() function. Based upon the Boolean value either True or False, the checkbox is triggered.

When the passed parameter is set to False, then the checkbox is not clicked by default and a simple line plot of the exponential curve will be displayed. When the passed parameter is set to True, then the checkbox is clicked, and the scatter plot of the exponential curve gets displayed.

Code:

Python




import numpy as np
import matplotlib.pyplot as plt
from ipywidgets import interact
%matplotlib inline
  
x = np.linspace(0, 5, 100)
y = np.exp(x)
  
# Plotting the graph for exponential function
def plot(checkbox):
      
    # if checkbox is ticked then scatter
    # plot will be displayed
    if checkbox:
        plt.scatter(x, y, s = 5)
        plt.title('Scatter plot of exponential curve')
      
    # if checkbox is not ticked (by default)
    # line plot will be displayed
    else:
        plt.plot(x, y)
        plt.title('Line plot of exponential curve')
          
# calling the interact function        
interact(plot, checkbox = bool())


Output:

When the checkbox is not clicked by default Boolean value is set to False and the line plot will be displayed.

Checkbox not ticked: line plot

When the checkbox is ticked Boolean value inside the interact() function is set to True and a scatter plot will be displayed.

checkbox ticked: scatter plot


Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads