Función Matplotlib.axis.Axis.set_contains() en Python

Matplotlib es una biblioteca en Python y es una extensión matemática numérica para la biblioteca NumPy. Es una biblioteca de visualización increíble en Python para gráficos 2D de arrays y se utiliza para trabajar con la pila SciPy más amplia.

Matplotlib.axis.Axis.set_contains() Función

La función Axis.set_contains() en el módulo de eje de la biblioteca matplotlib se usa para definir una prueba de contenido personalizada para el artista. 
 

Sintaxis: Axis.set_contains(self, selector) 
 

Parámetros: este método acepta los siguientes parámetros. 

  • selector: este parámetro es la función de selección personalizada para evaluar si un evento está dentro del artista.

Valor devuelto : este método no devuelve ningún valor. 

Los siguientes ejemplos ilustran la función matplotlib.axis.Axis.set_contains() en matplotlib.axis:
Ejemplo 1:

Python3

# Implementation of matplotlib function
from matplotlib.axis import Axis
import matplotlib.pyplot as plt  
from matplotlib.lines import Line2D  
from matplotlib.patches import Rectangle  
from matplotlib.text import Text  
from matplotlib.image import AxesImage  
import numpy as np  
from numpy.random import rand  
      
      
fig, (ax1, ax2) = plt.subplots(2, 1)  
ax1.set_ylabel('ylabel', picker = True,  
               bbox = dict(facecolor ='red'))  
      
line, = ax1.plot(rand(100), 'go-')  
      
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())  
     
Axis.set_contains(ax2, picker = onpick1) 
fig.canvas.mpl_connect('pick_event', onpick1)
  
fig.suptitle('matplotlib.axis.Axis.set_contains() \
function Example\n', fontweight ="bold")  
    
plt.show() 

Producción: 

Haga clic en la figura: 

onpick1 text: ylabel
onpick1 patch: Path(array([[0., 0.],
       [1., 0.],
       [1., 1.],
       [0., 1.],
       [0., 0.]]), array([ 1,  2,  2,  2, 79], dtype=uint8))
onpick1 patch: Path(array([[0., 0.],
       [1., 0.],
       [1., 1.],
       [0., 1.],
       [0., 0.]]), array([ 1,  2,  2,  2, 79], dtype=uint8))

Ejemplo 2:

Python3

# Implementation of matplotlib function
from matplotlib.axis import Axis
import matplotlib.pyplot as plt  
from matplotlib.lines import Line2D  
from matplotlib.patches import Rectangle  
from matplotlib.text import Text  
from matplotlib.image import AxesImage  
import numpy as np  
from numpy.random import rand  
      
      
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()  
      
def onpick2(event):  
          
    print('Result :', event.pickx, event.picky)  
      
fig, ax = plt.subplots()  
ax.plot(rand(100), rand(100), 'o')  
    
Axis.set_contains(ax, picker = line_picker) 
    
fig.canvas.mpl_connect('pick_event', onpick2) 
  
fig.suptitle('matplotlib.axis.Axis.set_contains() \
function Example\n', fontweight ="bold")  
    
plt.show() 

Producción: 
 

Publicación traducida automáticamente

Artículo escrito por SHUBHAMSINGH10 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *