¿Cómo colocar la leyenda fuera de la trama en Matplotlib?

En este artículo, veremos cómo colocar la leyenda fuera de la trama en Matplotlib. Analicemos algunos conceptos:

  • Matplotlib: 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. Fue presentado por John Hunter en el año 2002.
  • Leyenda: Una leyenda es un área que describe los elementos del gráfico. En la biblioteca matplotlib, hay una función llamada legend() que se usa para colocar una leyenda en los ejes. El atributo Loc en legend() se usa para especificar la ubicación de la leyenda. El valor predeterminado de loc es loc=”mejor” (parte superior izquierda).

Aquí, primero veremos por qué es necesario colocar la leyenda en el exterior.

Python3

# importing packages
import numpy as np
import matplotlib.pyplot as plt
  
# create data
x=np.linspace(-20, 20, 1000)
  
# plot the graphs
plt.plot(x,np.sin(x))
plt.plot(x,np.cos(x))
  
# add legends
plt.legend(["Sine","Cosine"])
  
plt.show()

Producción:

Como podemos ver, las leyendas de las figuras anteriores se superponen en el gráfico, es decir; información incompleta. Para resolver este problema necesitamos colocar la leyenda fuera de la trama.

Pasos necesarios

  1. Importar bibliotecas
  2. Crear/Cargar datos
  3. hacer parcelas
  4. Añadir leyenda fuera de la trama.

Ejemplo 1: (lado derecho)

Python3

# importing packages
import numpy as np
import matplotlib.pyplot as plt
  
# create data
x=np.linspace(-20, 20, 1000)
  
# plot the graphs
plt.plot(x,np.sin(x))
plt.plot(x,np.cos(x))
  
# add legends and set its box position
plt.legend(["Sine","Cosine"],
           bbox_to_anchor = (1.05, 0.6))
  
plt.show()

Producción:

Ejemplo 2: (en la parte superior)

Python3

# importing packages
import numpy as np
import matplotlib.pyplot as plt
  
# create data
x=np.linspace(-20, 20, 1000)
  
# plot the graphs
plt.plot(x, np.sin(x))
plt.plot(x, np.cos(x))
  
# add legends and set its box position
plt.legend(["Sine", "Cosine"],
           bbox_to_anchor=(0.6, 1.2))
  
plt.show()

Producción :

Ejemplo 3: (Con subtramas)

Python3

# importing packages
import numpy as np
import matplotlib.pyplot as plt
  
# create data
x = np.linspace(-5, 5, 1000)
colors=[['c','g'], ['y','r']]
  
# make subplot and plots the grpahs
fig, ax = plt.subplots(2, 2)
for i in range(2):
    ax[0][i].plot(x, np.sin(x+i),
                  color = colors[0][i],
                  label = "y=sin(x+{})".format(i))
      
    ax[1][i].plot(x, np.sin(x+i), 
                  color = colors[1][i],
                  label = "y=sin(x+{})".format(i))
      
# set legend position
fig.legend(bbox_to_anchor=(1.3, 0.6))
  
# set spacing to subplots
fig.tight_layout()  
plt.show()

Producción :

Publicación traducida automáticamente

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