Clase Matplotlib.patches.ArrowStyle 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.ArrowStyle

La matplotlib.patches.ArrowStyleclase es una clase contenedora que define muchas clases de estilo de flecha, que se utilizan para crear una ruta de flecha a lo largo de una ruta proporcionada. Estos se utilizan principalmente con FancyArrowpatch.

Sintaxis: clase matplotlib.patches.ArrowStyle

Las siguientes subclases están definidas para varios estilos de flecha;

Clase Nombre Atributos
Curva Ninguna
CurvaB -> cabeza_longitud=0.4, cabeza_ancho=0.2
SoporteB -[ anchoB=1.0, largoB=0.2, ánguloB=Ninguno
CurvaRellenaB -|> cabeza_longitud=0.4, cabeza_ancho=0.2
CurvaA <- cabeza_longitud=0.4, cabeza_ancho=0.2
CurvaAB <-|> cabeza_longitud=0.4, cabeza_ancho=0.2
CurveFilledA <|- cabeza_longitud=0.4, cabeza_ancho=0.2
CurveFilledAB <|-|> cabeza_longitud=0.4, cabeza_ancho=0.2
Soporte A ]- anchoA=1.0, largoA=0.2, ánguloA=Ninguno
SoporteAB ]-[ anchoA=1.0, largoA=0.2, ánguloA=Ninguno, anchoB=1.0, largoB=0.2, ánguloB=Ninguno
Lujoso lujoso head_length=0.4, head_width=0.4, tail_width=0.4
Simple simple head_length=0.5, head_width=0.5, tail_width=0.2
Cuña cuña ancho_de_cola=0.3, factor_de_reducción=0.5
Bar AB |-| anchoA=1.0, ánguloA=Ninguno, anchoB=1.0, ánguloB=Ninguno


Ejemplo 1:

import matplotlib.pyplot as plt
from matplotlib.patches import ArrowStyle
  
plt.figure(1, figsize =(9, 9))
  
ArrowStyle("Wedge")
  
ax = plt.subplot(111)
  
ax.annotate("",
            xy =(0.2, 0.2), xycoords ='data',
            xytext =(0.8, 0.8), textcoords ='data',
            arrowprops = dict(arrowstyle ="Wedge",
                            connectionstyle ="arc3"), 
            )
  
plt.show()

Salida:

Ejemplo 2:

import matplotlib.patches as mpatch
import matplotlib.pyplot as plt
  
  
figheight = 8
fig = plt.figure(figsize =(9, figheight), dpi = 80)
fontsize = 0.4 * fig.dpi
  
def make_boxstyles(ax):
    styles = mpatch.BoxStyle.get_styles()
  
    for i, (stylename, styleclass) in enumerate(sorted(styles.items())):
        ax.text(0.5, 
                (float(len(styles)) - 0.5 - i)/len(styles),
                stylename,
                ha ="center",
                size = fontsize,
                transform = ax.transAxes,
                bbox = dict(boxstyle = stylename, 
                            fc ="g", ec ="r"))
  
def make_arrowstyles(ax):
    styles = mpatch.ArrowStyle.get_styles()
  
    ax.set_xlim(0, 4)
    ax.set_ylim(0, figheight)
  
    for i, (stylename, styleclass) in enumerate(sorted(styles.items())):
          
        # /figheight
        y = (float(len(styles)) - 0.25 - i
        p = mpatch.Circle((3.2, y), 0.2, fc ="r")
        ax.add_patch(p)
  
        ax.annotate(stylename, (3.2, y),
                    (2., y),
                      
                    # xycoords ="figure fraction",
                    # textcoords ="figure fraction",
                    ha ="right", va ="center",
                    size = fontsize,
                    arrowprops = dict(arrowstyle = stylename,
                                    patchB = p,
                                    shrinkA = 5,
                                    shrinkB = 5,
                                    fc ="w", ec ="r",
                                    connectionstyle ="arc3, rad =-0.05",
                                    ),
                    bbox = dict(boxstyle ="square", fc ="g"))
  
    ax.xaxis.set_visible(False)
    ax.yaxis.set_visible(False)
  
  
ax1 = fig.add_subplot(121, frameon = False, xticks =[], yticks =[])
make_boxstyles(ax1)
  
ax2 = fig.add_subplot(122, frameon = False, xticks =[], yticks =[])
make_arrowstyles(ax2)
  
  
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 *