Eliminación de los bordes en una gráfica de matplotlib

Podemos eliminar los bordes de una gráfica (lo que en inglés se denomina spine) utilizando el método set_visible asociado a un objeto tipo spines. Partimos de la siguiente gráfica tras importar las librerías de interés:

import numpy as np
import matplotlib.pyplot as plt

np.random.seed(18)
y = np.random.randn(100).cumsum()

ax = plt.axes()
plt.plot(y)
plt.show()

Gráfica inicial

Una vez tenemos acceso a los ejes de la gráfica (en este caso representados por la variable ax) podemos hacer referencia a los bordes de la siguiente forma:

ax.spines

objeto spines de la gráfica

Vemos que se trata de un diccionario ordenado. Los cuatro objetos accesibles a través de las claves dan acceso a uno de los bordes. Por ejemplo:

ax.spines["bottom"]

<matplotlib.spines.Spine at 0x2153b8e8c18>

Estos objetos son los que tienen asociados el método set_visible comentado. De esta forma, para ocultar el borde inferior:

ax = plt.axes()
plt.plot(y)
ax.spines['bottom'].set_visible(False)
plt.show()

Gráfica sin el borde inferior

Si quisiéramos eliminar los cuatro bordes:

ax = plt.axes()
plt.plot(y)
ax.spines['right'].set_visible(False)
ax.spines['top'].set_visible(False)
ax.spines['bottom'].set_visible(False)
ax.spines['left'].set_visible(False)
plt.show()

Gráfica sin bordes

Obsérvese que, de esta forma, solo controlamos el borde, no los ticks, ni las etiquetas ni el posible grid:

ax = plt.axes()
plt.plot(y)
ax.spines['right'].set_visible(False)
ax.spines['top'].set_visible(False)
ax.spines['bottom'].set_visible(False)
ax.spines['left'].set_visible(False)
plt.grid()
plt.show()

Gráfica sin bordes pero con grid

 

Enviado por admin el Vie, 29/03/2019 - 11:58