Matplotlib es una biblioteca en Python y es una extensión matemática numérica para la biblioteca NumPy. La clase Artist contiene una clase base Abstract para objetos que se representan en un FigureCanvas. Todos los elementos visibles en una figura son subclases de Artista.
método matplotlib.artist.Artist.set_contains()
El método set_contains() en el módulo de artista de la biblioteca matplotlib se usa para definir una prueba de contenido personalizada para el artista.
Sintaxis: Artist.set_contains(self, selector)
Parámetros: este método acepta los siguientes parámetros, como se explica a continuación:
- selector: este parámetro es la función de selección personalizada para evaluar si un evento está dentro del artista.
Devoluciones: este método no devuelve ningún valor.
Los siguientes ejemplos ilustran la función matplotlib.artist.Artist.set_contains() en matplotlib:
Ejemplo 1:
# Implementation of matplotlib function from matplotlib.artist import Artist 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()) Artist.set_contains(ax2, picker = onpick1) fig.canvas.mpl_connect('pick_event', onpick1) fig.suptitle('matplotlib.artist.Artist.set_contains() \ function Example', fontweight ="bold") plt.show()
Producción:
Ejemplo 2:
# Implementation of matplotlib function from matplotlib.artist import Artist 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') Artist.set_contains(ax, picker = line_picker) fig.canvas.mpl_connect('pick_event', onpick2) fig.suptitle('matplotlib.artist.Artist.set_contains() \ function Example', 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