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()
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
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"]
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()
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()
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()