Leyenda de matplotlib para una flecha.

Me gustaría saber cómo es posible etiquetar una arrow y mostrarla en la leyenda de una ttwig.

Por ejemplo si hago esto

  arrow(0,1,'dummy',label='My label') legend() 

No veo nada en la leyenda. Me gustaría ver en el cuadro de leyenda una flecha al lado de su etiqueta.

Puede agregar artistas arbitrarios al comando de leyenda, como se explica aquí

 import matplotlib.pyplot as plt f = plt.figure() arrow = plt.arrow(0, 0, 0.5, 0.6, 'dummy',label='My label') plt.legend([arrow,], ['My label',]) 

El artista de la flecha no permite un parámetro de marcador, por lo que deberá realizar algunos retoques manuales adicionales para reemplazar el marcador en la leyenda.

EDITAR

Para obtener el marcador personalizado, debe definir su propio handler_map . El siguiente código está inspirado en el ejemplo aquí :

 from matplotlib.legend_handler import HandlerPatch import matplotlib.patches as mpatches def make_legend_arrow(legend, orig_handle, xdescent, ydescent, width, height, fontsize): p = mpatches.FancyArrow(0, 0.5*height, width, 0, length_includes_head=True, head_width=0.75*height ) return p f = plt.figure(figsize=(10,6)) arrow = plt.arrow(0,0, 0.5, 0.6, 'dummy', label='My label', ) plt.legend([arrow], ['My label'], handler_map={mpatches.FancyArrow : HandlerPatch(patch_func=make_legend_arrow), }) 

Puedes añadir cualquier símbolo de látex como marcador. Por ejemplo: para una flecha que apunta hacia abajo puede especificar:

 scatter( x ,y, c='purple',marker=r'$\downarrow$',s=20, label='arrow' )