Clase Matplotlib.patches.Arrow en Python

Matplotlib es una increíble biblioteca de visualización en Python para gráficos 2D de arrays. Matplotlib es una biblioteca de visualización de datos multiplataforma basada en arrays NumPy y diseñada para funcionar con la pila SciPy más amplia.

Matplotlib.parches.Arrow

La matplotlib.patches.Arrowclase se usa para parchear una flecha en la trama. dibuja una flecha de (x, y)a (x + dx, y + dy)y su ancho se escala usando el argumento de ancho.

Sintaxis: class matplotlib.patches.Arrow(x, y, dx, dy, ancho=1.0, **kwargs)

Parámetros:

  1. x: Representa la coordenada x de la cola de flecha.
  2. y: Representa la coordenada y de la cola de flecha.
  3. dx: Representa la longitud de la flecha en la dirección x.
  4. dy: Representa la longitud de la flecha en la dirección y.
  5. ancho: es un parámetro opcional y tiene un valor predeterminado de 1. es el factor de escala para el ancho de la flecha. En el valor predeterminado, el ancho de la cola es 0,2 y el ancho de la cabeza es 0,6.
  6. **kwargs: estas son las propiedades del parche que se mencionan a continuación en la tabla;
Propiedad Descripción
filtro_agg una función de filtro que toma una array flotante (m, n, 3) y un valor de ppp que devuelve una array (m, n, 3)
alfa flotante o Ninguno
animado bool
suavizado o aa desconocido
capstyle {‘trasero’, ‘redondo’, ‘proyectado’}
clip_box Bbox
clip_en bool
clip_path [(Ruta, Transformar)|Parche|Ninguno]
color color o secuencia de tuplas rgba
contiene invocable
edgecolor o ec o edgecolors color o Ninguno o ‘auto’
color de cara o fc o colores de cara color o ninguno
figura figura
llenar bool
Gid calle
escotilla {‘/’, ‘\’, ‘|’, ‘-‘, ‘+’, ‘x’, ‘o’, ‘O’, ‘.’, ‘*’}
en_diseño bool
estilo de unión {‘inglete’, ‘redondo’, ‘bisel’}
estilo de línea o ls {‘-‘, ‘–’, ‘-.’, ‘:’, ”, (desplazamiento, on-off-seq), …}
ancho de línea o anchos de línea o lw flotante o Ninguno
efectos_ruta ResumenRutaEfecto
recogedor Ninguno o bool o flotante o invocable
efectos_ruta ResumenRutaEfecto
recogedor flotante o invocable[[Artista, Evento], Tuple[bool, dict]]
rasterizado booleano o ninguno
sketch_params (escala: flotante, longitud: flotante, aleatoriedad: flotante)
siesta booleano o ninguno
transformar matplotlib.transforms.Transformar
URL calle
visible bool
orden Z flotar

Ejemplo 1:

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.path as mpath
import matplotlib.lines as mlines
import matplotlib.patches as mpatches
from matplotlib.collections import PatchCollection
  
  
def label(xy, text):
      
    # shift y-value for label so that 
    # it's below the artist
    y = xy[1] - 0.15
    plt.text(xy[0], y, text, ha ="center",
             family ='sans-serif', size = 14)
  
  
fig, ax = plt.subplots()
  
# create 3x3 grid to plot 
# the artists
grid = np.mgrid[0.2:0.8:3j, 
                0.2:0.8:3j].reshape(2, -1).T
  
patches = []
  
  
# add an arrow
arrow = mpatches.Arrow(grid[5, 0] - 0.05, 
                       grid[5, 1] - 0.05, 0.1, 0.1,
                       width = 0.1)
patches.append(arrow)
label(grid[5], " Sample Arrow")
  
  
colors = np.linspace(0, 1, len(patches))
collection = PatchCollection(patches,
                             cmap = plt.cm.hsv, 
                             alpha = 0.3)
  
collection.set_array(np.array(colors))
ax.add_collection(collection)
  
plt.axis('equal')
plt.axis('off')
plt.tight_layout()
  
plt.show()

Producción:

Ejemplo 2:

from matplotlib import pyplot as plt
from matplotlib.patches import Rectangle, Arrow
import numpy as np
  
  
nmax = 9
xdata = range(nmax)
ydata = np.random.random(nmax)
  
plt.ion()
fig, ax = plt.subplots()
ax.set_aspect("equal")
ax.plot(xdata, ydata, 'o-')
ax.set_xlim(-1, 10)
ax.set_ylim(-1, 4)
  
  
rect = Rectangle((0, 0), nmax, 1, zorder = 10)
ax.add_patch(rect)
  
x0, y0 = 5, 3
arrow = Arrow(1, 1, x0-1, y0-1, color ="# aa0088")
  
a = ax.add_patch(arrow)
  
plt.draw()
  
for i in range(nmax):
      
    rect.set_x(i)
    rect.set_width(nmax - i)
  
    a.remove()
    arrow = Arrow(1 + i, 1, x0-i + 1, y0-1, 
                  color ="# aa0088")
    a = ax.add_patch(arrow)
  
    fig.canvas.draw_idle()
    plt.pause(0.4)
  
plt.waitforbuttonpress() 
  
plt.show()

Producción:

Publicación traducida automáticamente

Artículo escrito por RajuKumar19 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 *