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.Arrow
clase 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:
- x: Representa la coordenada x de la cola de flecha.
- y: Representa la coordenada y de la cola de flecha.
- dx: Representa la longitud de la flecha en la dirección x.
- dy: Representa la longitud de la flecha en la dirección y.
- 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.
- **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