Open In App

Matplotlib.artist.Artist.get_contains() in Python

Improve
Improve
Like Article
Like
Save
Share
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:




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




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



Last Updated : 10 May, 2020
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads