Open In App

Matplotlib.artist.Artist.get_contains() in Python

Last Updated : 10 May, 2020
Comments
Improve
Suggest changes
Like Article
Like
Report
Matplotlib is a library in Python and it is numerical – mathematical extension for NumPy library. The Artist class contains Abstract base class for objects that render into a FigureCanvas. All visible elements in a figure are subclasses of Artist.

matplotlib.artist.Artist.get_contains() method

The get_contains() method in artist module of matplotlib library is used to return the custom contains function of the artist.
Syntax: Artist.get_contains(self) Parameters: This method does not accept any parameters. Returns: This method returns the custom contains function of the artist.
Below examples illustrate the matplotlib.artist.Artist.get_contains() function in matplotlib: Example 1: Python3 1==
# Implementation of matplotlib function
from matplotlib.artist import Artist
import matplotlib.pyplot as plt 
from matplotlib.lines import Line2D 
import numpy as np 
from numpy.random import rand 


fig, ax2 = plt.subplots() 
    
ax2.bar(range(10), rand(10), picker = True) 
  
for label in ax2.get_xticklabels():  
    label.set_picker(True) 
    
def onpick1(event): 
      
    if isinstance(event.artist, Line2D): 
        thisline = event.artist 
        xdata = thisline.get_xdata() 
        ydata = thisline.get_ydata() 
        ind = event.ind 
        print('onpick1 line:', 
               np.column_stack([xdata[ind],  
                               ydata[ind]])) 
          
    elif isinstance(event.artist, Rectangle): 
        patch = event.artist 
        print('onpick1 patch:', patch.get_path()) 
          
    elif isinstance(event.artist, Text): 
        text = event.artist 
        print('onpick1 text:', text.get_text())
 
Artist.set_contains(ax2, picker = onpick1)

ax2.text(0.5, 0.8, 
         "Value Return : "
         + str(Artist.get_contains(ax2)),  
         fontweight ="bold", fontsize = 10) 
        
fig.suptitle('matplotlib.artist.Artist.get_contains() \
function Example', fontweight ="bold") 

plt.show()
Output: Example 2: Python3 1==
# Implementation of matplotlib function
from matplotlib.artist import Artist
# Implementation of matplotlib function 
import matplotlib.pyplot as plt 
from matplotlib.lines import Line2D 
import numpy as np 
from numpy.random import rand 

    
fig, ax = plt.subplots() 
ax.plot(rand(100), rand(100), 'o') 
    
def line_picker(line, mouseevent): 
      
    if mouseevent.xdata is None: 
        return False, dict() 
      
    xdata = line.get_xdata() 
    ydata = line.get_ydata() 
    maxd = 0.05
    d = np.sqrt( 
        (xdata - mouseevent.xdata)**2 + (ydata - mouseevent.ydata)**2) 
  
    ind, = np.nonzero(d <= maxd) 
      
    if len(ind): 
          
        pickx = xdata[ind] 
        picky = ydata[ind] 
        props = dict(ind = ind, pickx = pickx, picky = picky) 
        return True, props 
      
    else: 
        return False, dict() 
 
Artist.set_contains(ax, picker = line_picker)

ax.text(0.1, 0.8, 
         "Value Return : "
         + str(Artist.get_contains(ax)),  
         fontweight ="bold", fontsize = 10) 
        
fig.suptitle('matplotlib.artist.Artist.get_contains() \
function Example', fontweight ="bold") 

plt.show()
Output:

Next Article
Practice Tags :

Similar Reads