tutorial pyplot libreria instalar espaƱol python plot matplotlib

pyplot - plot python 3



Matplotlib Legends no funciona (4)

Debes agregar comas:

plot1, = plt.plot(a,b) plot2, = plt.plot(a,c)

La razón por la que necesita las comas es porque plt.plot () devuelve una tupla de objetos de línea, sin importar cuántos realmente se crean a partir del comando. Sin la coma, "plot1" y "plot2" son tuplas en lugar de objetos de línea, lo que hace que falle la última llamada a plt.legend ().

La coma implícitamente descomprime los resultados de modo que en lugar de una tupla, "plot1" y "plot2" se convierten automáticamente en los primeros objetos dentro de la tupla, es decir, los objetos de línea que realmente desea.

http://matplotlib.sourceforge.net/users/legend_guide.html#adjusting-the-order-of-legend-items

line, = plot (x, sin (x)) ¿qué significa coma?

Desde que actualicé matplotlib recibo el siguiente error cada vez que trato de crear una leyenda:

/usr/lib/pymodules/python2.7/matplotlib/legend.py:610: UserWarning: Legend does not support [<matplotlib.lines.Line2D object at 0x3a30810>] Use proxy artist instead. http://matplotlib.sourceforge.net/users/legend_guide.html#using-proxy-artist warnings.warn("Legend does not support %s/nUse proxy artist instead./n/nhttp://matplotlib.sourceforge.net/users/legend_guide.html#using-proxy-artist/n" % (str(orig_handle),)) /usr/lib/pymodules/python2.7/matplotlib/legend.py:610: UserWarning: Legend does not support [<matplotlib.lines.Line2D object at 0x3a30990>] Use proxy artist instead. http://matplotlib.sourceforge.net/users/legend_guide.html#using-proxy-artist warnings.warn("Legend does not support %s/nUse proxy artist instead./n/nhttp://matplotlib.sourceforge.net/users/legend_guide.html#using-proxy-artist/n" % (str(orig_handle),))

Esto incluso ocurre con un script trivial como este:

import matplotlib.pyplot as plt a = [1,2,3] b = [4,5,6] c = [7,8,9] plot1 = plt.plot(a,b) plot2 = plt.plot(a,c) plt.legend([plot1,plot2],["plot 1", "plot 2"]) plt.show()

He encontrado el enlace que el error me indica que es bastante inútil para diagnosticar el origen del error.


Use la palabra clave "etiqueta", así:

pyplot.plot(x, y, label=''x vs. y'')

y luego agrega la leyenda así:

pyplot.legend()

La leyenda conservará las propiedades de línea como grosor, colores, etc.


Utilice las handles AKA Proxy artists

import matplotlib.lines as mlines import matplotlib.pyplot as plt blue_line = mlines.Line2D([], [], color=''blue'', label=''My Label'') reds_line = mlines.Line2D([], [], color=''reds'', label=''My Othes'') plt.legend(handles=[blue_line, reds_line]) plt.show()


use la etiqueta mientras traza el gráfico, entonces solo puede usar la leyenda. El nombre del eje x y el nombre del eje y es diferente del nombre de la leyenda.